# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Synth Look and Feel.
# Currently, the following components need this for support:
#
#    FileChooser
#
# When this file is read in, the strings are put into the 
# defaults table.  This is an implementation detail of the current
# workings of Swing.  DO NOT DEPEND ON THIS.  
# This may change in future versions of Swing as we improve localization 
# support.
#
# @author Steve Wilson


############ FILE CHOOSER STRINGS #############

FileChooser.lookInLabelText=S\u00f6k i:
FileChooser.saveInLabelText=Spara i:
FileChooser.fileNameLabelText=Filnamn:
FileChooser.folderNameLabelText=Folder name:
FileChooser.filesOfTypeLabelText=Filformat:
FileChooser.upFolderToolTipText=Upp en niv\u00e5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTipText=Hem
FileChooser.homeFolderAccessibleName=Hem
FileChooser.newFolderToolTipText=Skapa ny mapp
FileChooser.newFolderAccessibleName=Ny mapp
FileChooser.listViewButtonToolTipText=Lista
FileChooser.listViewButtonAccessibleName=Lista
FileChooser.detailsViewButtonToolTipText=Detaljerad lista
FileChooser.detailsViewButtonAccessibleName=Detaljerad lista
FileChooser.fileNameHeaderText=Namn
FileChooser.fileSizeHeaderText=Storlek
FileChooser.fileTypeHeaderText=Typ
FileChooser.fileDateHeaderText=\u00c4ndrad
FileChooser.fileAttrHeaderText=Attribut
