#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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 d'importation
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}

