# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Metal 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.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.newFolderActionLabelText=Ny mapp
FileChooser.listViewButtonToolTipText=Lista
FileChooser.listViewButtonAccessibleName=Lista
FileChooser.listViewActionLabelText=Lista
FileChooser.detailsViewButtonToolTipText=Detaljerad lista
FileChooser.detailsViewButtonAccessibleName=Detaljerad lista
FileChooser.detailsViewActionLabelText=Detaljerad lista
FileChooser.refreshActionLabelText=Uppdatera
FileChooser.viewMenuLabelText=Vy
FileChooser.fileNameHeaderText=Namn
FileChooser.fileSizeHeaderText=Storlek
FileChooser.fileTypeHeaderText=Typ
FileChooser.fileDateHeaderText=\u00c4ndrad
FileChooser.fileAttrHeaderText=Attribut

############ Used by MetalTitlePane if rendering window decorations############
# All mnemonics are KeyEvent.VK_XXX as integers
MetalTitlePane.restoreTitle=\u00c5terst\u00e4ll
MetalTitlePane.restoreMnemonic=84
MetalTitlePane.iconifyTitle=Minimera
MetalTitlePane.iconifyMnemonic=77
MetalTitlePane.maximizeTitle=Maximera
MetalTitlePane.maximizeMnemonic=88
MetalTitlePane.closeTitle=St\u00e4ng
MetalTitlePane.closeMnemonic=83
