# 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=Cerca in:
FileChooser.saveInLabelText=Salva in:
FileChooser.fileNameLabelText=Nome file:
FileChooser.folderNameLabelText=Folder name:
FileChooser.filesOfTypeLabelText=Tipo file:
FileChooser.upFolderToolTipText=Cartella superiore
FileChooser.upFolderAccessibleName=Superiore
FileChooser.homeFolderToolTipText=Principale
FileChooser.homeFolderAccessibleName=Principale
FileChooser.newFolderToolTipText=Crea nuova cartella
FileChooser.newFolderAccessibleName=Nuova cartella
FileChooser.listViewButtonToolTipText=Elenco
FileChooser.listViewButtonAccessibleName=Elenco
FileChooser.detailsViewButtonToolTipText=Dettagli
FileChooser.detailsViewButtonAccessibleName=Dettagli
FileChooser.fileNameHeaderText=Nome
FileChooser.fileSizeHeaderText=Dimensioni
FileChooser.fileTypeHeaderText=Tipo
FileChooser.fileDateHeaderText=Modificato
FileChooser.fileAttrHeaderText=Attributi

