# 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=Suchen &in:
FileChooser.saveInLabel.textAndMnemonic=Speichern in:
FileChooser.fileNameLabel.textAndMnemonic=&Dateiname:
FileChooser.folderNameLabel.textAndMnemonic=Ordner&name:
FileChooser.filesOfTypeLabel.textAndMnemonic=Datei&typ:
FileChooser.upFolderToolTip.textAndMnemonic=Eine Ebene h\u00F6her
FileChooser.upFolderAccessibleName=Nach oben
FileChooser.homeFolderToolTip.textAndMnemonic=Home
FileChooser.homeFolderAccessibleName=Home
FileChooser.newFolderToolTip.textAndMnemonic=Neuen Ordner erstellen
FileChooser.newFolderAccessibleName=Neuer Ordner
FileChooser.newFolderActionLabel.textAndMnemonic=Neuer Ordner
FileChooser.listViewButtonToolTip.textAndMnemonic=Liste
FileChooser.listViewButtonAccessibleName=Liste
FileChooser.listViewActionLabel.textAndMnemonic=Liste
FileChooser.detailsViewButtonToolTip.textAndMnemonic=Details
FileChooser.detailsViewButtonAccessibleName=Details
FileChooser.viewMenuButtonToolTipText = Ansichtsmen\u00FC
FileChooser.viewMenuButtonAccessibleName = Ansichtsmen\u00FC
FileChooser.detailsViewActionLabel.textAndMnemonic=Details
FileChooser.refreshActionLabel.textAndMnemonic=Aktualisieren
FileChooser.viewMenuLabel.textAndMnemonic=Ansicht
FileChooser.fileNameHeader.textAndMnemonic=Name
FileChooser.fileSizeHeader.textAndMnemonic=Gr\u00F6\u00DFe
FileChooser.fileTypeHeader.textAndMnemonic=Typ
FileChooser.fileDateHeader.textAndMnemonic=Ge\u00E4ndert
FileChooser.fileAttrHeader.textAndMnemonic=Attribute
