#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# IBM Corporation - initial implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR
#
# Message ID Range:
#

# Import XML Wizard
importXMLWizard_title=Importer du langage XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Sp\u00e9cifier un fichier d'importation
selectXMLFilePage_desc=Sp\u00e9cifiez le fichier XML incluant le contenu de la biblioth\u00e8que de m\u00e9thodes \u00e0 importer et s\u00e9lectionnez l'op\u00e9ration d'importation ad\u00e9quate \u00e0 effectuer.
fileLabel_text=Fichier XML :
browseButton_text=Parcourir...
optionGroup_text=Option de fusion
optionGroup1_text=Option V\u00e9rifier le plug-in de base
overwriteRadioButton_text=Ecrasez le contenu de la biblioth\u00e8que de m\u00e9thodes existante avec le contenu import\u00e9
mergeRadioButton_text=Fusionnez le contenu import\u00e9 dans la biblioth\u00e8que de m\u00e9thodes existante

# Progress Messages
importingXML_text=Importation du contenu de la biblioth\u00e8que XML dans la biblioth\u00e8que de m\u00e9thodes en cours...

# Import XML Error Dialog
review_log_files=L''op\u00e9ration d''importation est termin\u00e9e. R\u00e9visez les fichiers journaux dans le dossier \n''{0}'' en cas d''erreur.
importXMLError_msg=IUPM0000E : L'op\u00e9ration d'importation ne peut pas se poursuivre.
importXMLError_reason=IUPM0009E : La biblioth\u00e8que de m\u00e9thodes en cours est en lecture seulement.\n\nAssurez-vous que ''{0}'' est modifiable ou cr\u00e9ez une nouvelle biblioth\u00e8que de m\u00e9thodes et r\u00e9essayez.

# Error Messages
invalidXMLFile_error=Le fichier XML sp\u00e9cifi\u00e9 est non valide.
versionMismatch_oldData=IUPM0010E : Le fichier XML sp\u00e9cifi\u00e9 a \u00e9t\u00e9 export\u00e9 par une version ant\u00e9rieure ({0}) de {1}. Vous devez exporter les fichiers en utilisant la version actuelle de {1}.
versionMismatch_oldData_unknown=IUPM0011E : Le fichier XML sp\u00e9cifi\u00e9 a \u00e9t\u00e9 export\u00e9 par une version ant\u00e9rieure de {0}. Vous devez exporter les fichiers en utilisant la version actuelle de {0}.
versionMismatch_oldTool=IUPM0012E : Le fichier XML sp\u00e9cifi\u00e9 a \u00e9t\u00e9 export\u00e9 par une version plus r\u00e9cente ({0}) de {1}. Vous devez effectuer une mise \u00e0 niveau de {1} pour importer le fichier.  
versionMismatch_oldTool_unknown=IUPM0013E: Impossible d''ouvrir le fichier XML sp\u00e9cifi\u00e9. Vous devez effectuer une mise \u00e0 niveau de {0} pour importer le fichier.  

importXMLService_element_not_handled=El\u00e9ment non g\u00e9r\u00e9 : {0}
importXMLService_element_without_id=El\u00e9ment sans identificateur : {0}
importXMLService_import_failed=Echec de l''importation : {0}
importXMLService_missing_plugin=Plug-in requis manquant {0}
importXMLService_error_missing_plugins=Plug-in(s) requis manquants. V\u00e9rifiez les fichiers journaux pour plus de d\u00e9tails.

library_error_no_eclass=Erreur lors de la cr\u00e9ation d''une cat\u00e9gorie de contenu : Impossible d''obtenir EClass pour {0}
library_no_package=Impossible de trouver le package d''appartenance pour l''objet {0}
library_error_create_element=Erreur lors de la cr\u00e9ation de l''\u00e9l\u00e9ment : {0}
library_object_string=objet {0}, fonction {1}
library_error_set_attribute_2=Erreur lors de la d\u00e9finition d''un attribut : Valeur de la fonction d''attribut non valide {0}
library_error_set_attribute=Erreur lors de la d\u00e9finition d''un attribut pour l''objet {0}, la fonction {1} et la valeur {2}
library_error_set_attribute_3=Ignore comment d\u00e9finir un attribut pour l''objet {0}, la fonction {1} et la valeur {2}
library_error_set_reference=Erreur lors de la d\u00e9finition d''une r\u00e9f\u00e9rence pour la fonction {0}: aucun \u00e9l\u00e9ment contenant un identificateur {1}
library_error_set_reference_2=Erreur lors de la d\u00e9finition d''une r\u00e9f\u00e9rence pour l''objet {0}, la fonction {1} et la valeur {2}

