# 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.lookInLabelText=Rechercher dans :
FileChooser.saveInLabelText=Enregistrer dans :
FileChooser.fileNameLabelText=Nom de fichier :
FileChooser.folderNameLabelText=Folder name:
FileChooser.filesOfTypeLabelText=Fichiers du type :
FileChooser.upFolderToolTipText=Remonte d'un niveau.
FileChooser.upFolderAccessibleName=Vers le haut
FileChooser.homeFolderToolTipText=R\u00e9pertoire d'accueil
FileChooser.homeFolderAccessibleName=Accueil
FileChooser.newFolderToolTipText=Cr\u00e9e un nouveau dossier.
FileChooser.newFolderAccessibleName=Nouveau dossier
FileChooser.newFolderActionLabelText=Nouveau dossier
FileChooser.listViewButtonToolTipText=Liste
FileChooser.listViewButtonAccessibleName=Liste
FileChooser.listViewActionLabelText=Liste
FileChooser.detailsViewButtonToolTipText=D\u00e9tails
FileChooser.detailsViewButtonAccessibleName=D\u00e9tails
FileChooser.viewMenuButtonToolTipText = View Menu
FileChooser.viewMenuButtonAccessibleName = View Menu
FileChooser.detailsViewActionLabelText=D\u00e9tails
FileChooser.refreshActionLabelText=Actualiser
FileChooser.viewMenuLabelText=Affichage
FileChooser.fileNameHeaderText=Nom
FileChooser.fileSizeHeaderText=Taille
FileChooser.fileTypeHeaderText=Type
FileChooser.fileDateHeaderText=Modifi\u00e9
FileChooser.fileAttrHeaderText=Attributs
