# 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=Cerca &in:
FileChooser.saveInLabel.textAndMnemonic=Salva in:
FileChooser.fileNameLabel.textAndMnemonic=&Nome file:
FileChooser.folderNameLabel.textAndMnemonic=&Nome cartella:
FileChooser.filesOfTypeLabel.textAndMnemonic=&Tipo file:
FileChooser.upFolderToolTip.textAndMnemonic=Cartella superiore
FileChooser.upFolderAccessibleName=Superiore
FileChooser.homeFolderToolTip.textAndMnemonic=Home
FileChooser.homeFolderAccessibleName=Home
FileChooser.newFolderToolTip.textAndMnemonic=Crea nuova cartella
FileChooser.newFolderAccessibleName=Nuova cartella
FileChooser.newFolderActionLabel.textAndMnemonic=Nuova cartella
FileChooser.listViewButtonToolTip.textAndMnemonic=Lista
FileChooser.listViewButtonAccessibleName=Lista
FileChooser.listViewActionLabel.textAndMnemonic=Lista
FileChooser.detailsViewButtonToolTip.textAndMnemonic=Dettagli
FileChooser.detailsViewButtonAccessibleName=Dettagli
FileChooser.viewMenuButtonToolTipText = Visualizza menu
FileChooser.viewMenuButtonAccessibleName = Visualizza menu
FileChooser.detailsViewActionLabel.textAndMnemonic=Dettagli
FileChooser.refreshActionLabel.textAndMnemonic=Aggiorna
FileChooser.viewMenuLabel.textAndMnemonic=Visualizza
FileChooser.fileNameHeader.textAndMnemonic=Nome
FileChooser.fileSizeHeader.textAndMnemonic=Dimensioni
FileChooser.fileTypeHeader.textAndMnemonic=Tipo
FileChooser.fileDateHeader.textAndMnemonic=Modificato
FileChooser.fileAttrHeader.textAndMnemonic=Attributi
