# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used in Swing
# Currently, the following components need this for support:
#
#    ColorChooser
#    FileChooser
#    OptionPane
#
# 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.
#
#                        MNEMONIC NOTE:
# Many of strings in this file are used by widgets that have a
# mnemonic, for example:
#   ColorChooser.rgbNameText=RGB
#   ColorChooser.rgbMnemonic=71
#   ColorChooser.rgbDisplayedMnemonicIndex=1
# Indicates that the tab in the ColorChooser for RGB colors will have
# the text 'RGB', further the mnemonic character will be 'g' and that
# a decoration will be provided under the 'G'. This will typically
# look like:  RGB
#              -
# 71 corresponds to the decimal value of the VK constant defined
# in java/awt/KeyEvent.java. VK_G is defined as:
#
#    public static final int VK_G              = 0x47;
#
# 0x47 is a hex number and needs to be converted to decimal.
# A simple way to calculate this for a-z is to add 64 to the index of
# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
# for 'a' is 65, 'b' is 66...
#
# The xxDisplayedMnemonicIndex is used to indicate the index of the
# character that should be underlined in the String, with 0
# corresponding to the first character in the String.
#
# One important thing to remember is that the mnemonic MUST exist in
# the String, if it does not exist you should add text that makes it
# exist. This will typically take the form 'XXXX (M)' where M is the
# character for the mnemonic.
# 
# @author Steve Wilson

############ FILE CHOOSER STRINGS #############
FileChooser.fileDescriptionText=Fichier g\u00e9n\u00e9rique
FileChooser.directoryDescriptionText=R\u00e9pertoire
FileChooser.newFolderErrorText=Erreur lors de la cr\u00e9ation du nouveau dossier
FileChooser.newFolderErrorSeparator= : 
FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
FileChooser.renameErrorTitleText=Error Renaming File or Folder
FileChooser.renameErrorText=Cannot rename {0}
FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
  Specify a different file name.
FileChooser.acceptAllFileFilterText=Tous les fichiers
FileChooser.cancelButtonText=Annuler
FileChooser.cancelButtonMnemonic=65
FileChooser.saveButtonText=Enregistrer
FileChooser.saveButtonMnemonic=69
FileChooser.openButtonText=Ouvrir
FileChooser.openButtonMnemonic=79
FileChooser.saveDialogTitleText=Enregistrer
FileChooser.openDialogTitleText=Ouvrir
FileChooser.updateButtonText=Mise \u00e0 jour
FileChooser.updateButtonMnemonic=77
FileChooser.helpButtonText=Aide
FileChooser.helpButtonMnemonic=68
FileChooser.directoryOpenButtonText=Ouvrir
FileChooser.directoryOpenButtonMnemonic=79

# File Size Units
FileChooser.fileSizeKiloBytes={0} Ko
FileChooser.fileSizeMegaBytes={0} Mo
FileChooser.fileSizeGigaBytes={0} Go

# These strings are platform dependent not look and feel dependent.
FileChooser.win32.newFolder=Nouveau dossier
FileChooser.win32.newFolder.subsequent=Nouveau dossier ({0})
FileChooser.other.newFolder=Nouveau dossier
FileChooser.other.newFolder.subsequent=Nouveau dossier.{0}


## file chooser tooltips ###
FileChooser.cancelButtonToolTipText=Ferme la bo\u00eete de dialogue du s\u00e9lecteur de fichiers
FileChooser.saveButtonToolTipText=Enregistre le fichier s\u00e9lectionn\u00e9
FileChooser.openButtonToolTipText=Ouvre le fichier s\u00e9lectionn\u00e9
FileChooser.updateButtonToolTipText=Met \u00e0 jour la liste des r\u00e9pertoires
FileChooser.helpButtonToolTipText=Aide sur le s\u00e9lecteur de fichiers
FileChooser.directoryOpenButtonToolTipText=Ouvrir le r\u00e9pertoire s\u00e9lectionn\u00e9

############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Aper\u00e7u
ColorChooser.okText=OK
ColorChooser.cancelText=Annuler
ColorChooser.resetText=Restaurer
# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
ColorChooser.resetMnemonic=82
ColorChooser.sampleText=Echantillon de texte  Echantillon de texte
ColorChooser.swatchesNameText=Echantillons
ColorChooser.swatchesMnemonic=69
ColorChooser.swatchesDisplayedMnemonicIndex=0
ColorChooser.swatchesRecentText=Dernier :
ColorChooser.hsbNameText=HSB
# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
# constant, and an index into the text to render the mnemonic as. The
# mnemonic is xxxMnemonic and the index of the character to underline is
# xxxDisplayedMnemonicIndex.
ColorChooser.hsbMnemonic=72
ColorChooser.hsbDisplayedMnemonicIndex=0
ColorChooser.hsbHueText=H
ColorChooser.hsbSaturationText=S
ColorChooser.hsbBrightnessText=B
ColorChooser.hsbRedText=R
ColorChooser.hsbGreenText=V
ColorChooser.hsbBlueText=B
ColorChooser.rgbNameText=RVB
ColorChooser.rgbMnemonic=86
ColorChooser.rgbDisplayedMnemonicIndex=1
ColorChooser.rgbRedText=Rouge
ColorChooser.rgbRedMnemonic=71
ColorChooser.rgbGreenText=Vert
ColorChooser.rgbGreenMnemonic=84
ColorChooser.rgbBlueText=Bleu
ColorChooser.rgbBlueMnemonic=66

############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
# We only define mnemonics for YES/NO, but for completeness you can
# define mnemonics for any of the buttons.
OptionPane.yesButtonText=Oui
OptionPane.yesButtonMnemonic=79
OptionPane.noButtonText=Non
OptionPane.noButtonMnemonic=78
OptionPane.okButtonText=OK
OptionPane.okButtonMnemonic=0
OptionPane.cancelButtonText=Annuler
OptionPane.cancelButtonMnemonic=0
OptionPane.titleText=S\u00e9lectionnez une option
# Title for the dialog for the showInputDialog methods. Only used if
# the developer uses one of the variants that doesn't take a title.
OptionPane.inputDialogTitle=Entr\u00e9e
# Title for the dialog for the showMessageDialog methods. Only used if
# the developer uses one of the variants that doesn't take a title.
OptionPane.messageDialogTitle=Message

############ Printing Dialog Strings ############
PrintingDialog.titleProgressText=Impression
PrintingDialog.titleAbortingText=Impression (Abandon)

PrintingDialog.contentInitialText=Impression en cours...

# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
PrintingDialog.contentProgressText=Page imprim\u00e9e {0}...

PrintingDialog.contentAbortingText=Abandon de l'impression...

PrintingDialog.abortButtonText=Abandonner
PrintingDialog.abortButtonMnemonic=65
PrintingDialog.abortButtonDisplayedMnemonicIndex=0
PrintingDialog.abortButtonToolTipText=Abandonner l'impression

############ Internal Frame Strings ############
InternalFrame.iconButtonToolTip=R\u00e9duire
InternalFrame.maxButtonToolTip=Agrandir
InternalFrame.restoreButtonToolTip=Restaurer
InternalFrame.closeButtonToolTip=Fermer

############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButtonText=Restaurer
InternalFrameTitlePane.moveButtonText=D\u00e9placer
InternalFrameTitlePane.sizeButtonText=Taille
InternalFrameTitlePane.minimizeButtonText=R\u00e9duire
InternalFrameTitlePane.maximizeButtonText=Agrandir
InternalFrameTitlePane.closeButtonText=Fermer

############ Text strings #############
# Used for html forms
FormView.submitButtonText=Soumettre la requ\u00eate
FormView.resetButtonText=Restaurer
FormView.browseFileButtonText=Parcourir...

############ Abstract Document Strings ############
AbstractDocument.styleChangeText=modification de style
AbstractDocument.additionText=ajout
AbstractDocument.deletionText=suppression
AbstractDocument.undoText=D\u00e9faire
AbstractDocument.redoText=Refaire

############ Abstract Button Strings ############
AbstractButton.clickText=cliquez sur

############ Abstract Undoable Edit Strings ############
AbstractUndoableEdit.undoText=D\u00e9faire
AbstractUndoableEdit.redoText=Refaire

############ Combo Box Strings ############
ComboBox.togglePopupText=togglePopup

############ Progress Monitor Strings ############
ProgressMonitor.progressText=Progression...

############ Split Pane Strings ############
SplitPane.leftButtonText=bouton gauche
SplitPane.rightButtonText=bouton droit
# Used for Isindex
IsindexView.prompt=Ceci est un index de recherche.  Tapez des mots-cl\u00e9s pour la recherche :

############ InternalFrameTitlePane Strings ############
InternalFrameTitlePane.iconifyButtonAccessibleName=R\u00e9duire
InternalFrameTitlePane.maximizeButtonAccessibleName=Agrandir
InternalFrameTitlePane.closeButtonAccessibleName=Fermer
