# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Windows 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.
#
# Refer to the note in basic.properties for a description as to what
# the mnemonics correspond to and how to calculate them.
#
# @author Steve Wilson


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

FileChooser.lookInLabel.textAndMnemonic=Leta &i:
FileChooser.saveInLabel.textAndMnemonic=Spara i:
FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTip.textAndMnemonic=Hem
FileChooser.homeFolderAccessibleName=Hem
FileChooser.newFolderToolTip.textAndMnemonic=Skapa ny mapp
FileChooser.newFolderAccessibleName=Ny mapp
FileChooser.newFolderActionLabel.textAndMnemonic=Ny mapp
FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
FileChooser.listViewButtonAccessibleName=Lista
FileChooser.listViewActionLabel.textAndMnemonic=Lista
FileChooser.detailsViewButtonToolTip.textAndMnemonic=Detaljer
FileChooser.detailsViewButtonAccessibleName=Detaljer
FileChooser.viewMenuButtonToolTipText = Menyn Visa
FileChooser.viewMenuButtonAccessibleName = Menyn Visa
FileChooser.detailsViewActionLabel.textAndMnemonic=Detaljer
FileChooser.refreshActionLabel.textAndMnemonic=F\u00F6rnya
FileChooser.viewMenuLabel.textAndMnemonic=Vy
FileChooser.fileNameHeader.textAndMnemonic=Namn
FileChooser.fileSizeHeader.textAndMnemonic=Storlek
FileChooser.fileTypeHeader.textAndMnemonic=Typ
FileChooser.fileDateHeader.textAndMnemonic=\u00C4ndrad
FileChooser.fileAttrHeader.textAndMnemonic=Attribut
