# 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=Suchen in:
FileChooser.saveInLabelText=Speichern in:
FileChooser.fileNameLabelText=Dateiname:
FileChooser.folderNameLabelText=Folder name:
FileChooser.filesOfTypeLabelText=Dateityp:
FileChooser.upFolderToolTipText=Eine Ebene h\u00f6her
FileChooser.upFolderAccessibleName=H\u00f6her
FileChooser.homeFolderToolTipText=Home
FileChooser.homeFolderAccessibleName=Home
FileChooser.newFolderToolTipText=Neuen Ordner erstellen
FileChooser.newFolderAccessibleName=Neuer Ordner
FileChooser.listViewButtonToolTipText=Liste
FileChooser.listViewButtonAccessibleName=Liste
FileChooser.detailsViewButtonToolTipText=Einzelheiten
FileChooser.detailsViewButtonAccessibleName=Einzelheiten
FileChooser.fileNameHeaderText=Dateiname
FileChooser.fileSizeHeaderText=Gr\u00f6\u00dfe
FileChooser.fileTypeHeaderText=Typ
FileChooser.fileDateHeaderText=Ge\u00e4ndert
FileChooser.fileAttrHeaderText=Attribut
