#-------------------------------------------------------------------------------
# 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:
#

# Export XML Wizard
exportXMLWizard_title=Exporter en langage XML

# Select Export Type Wizard Page
selectExportTypePage_desc=S\u00e9lectionnez le type de contenu de la biblioth\u00e8que de m\u00e9thodes \u00e0 exporter.
exportLibraryRadioButton_text=Exporter la biblioth\u00e8que de m\u00e9thodes enti\u00e8re
exportPluginsRadioButton_text=Exporter un ou plusieurs plug-ins de m\u00e9thode
exportConfigsRadioButton_text=Exporter une configuration de m\u00e9thode

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Sp\u00e9cifier un fichier d'exportation
selectXMLFilePage_desc=Sp\u00e9cifiez un fichier XML de destination pour stocker le contenu export\u00e9 de la biblioth\u00e8que de m\u00e9thodes.
fileLabel_text=Fichier XML :
browseButton_text=Parcourir...

# Overwrite Confirmation Dialog
overwriteText_msg=''{0}'' existe d\u00e9j\u00e0.\nVoulez-vous l''\u00e9craser ?

# Progress Messages
exportingXML_text=Exportation du contenu de la biblioth\u00e8que de m\u00e9thodes dans le fichier XML...

# Error Messages
invalidXMLFile_error=Le fichier XML sp\u00e9cifi\u00e9 est non valide.
exportXMLWizard_error=IUPM0000E : Echec de l''exportation : {0}
exportXMLWizard_reviewLog=Exportation termin\u00e9e. Consultez les fichiers journaux dans le r\u00e9pertoire d'exportation.
exportXMLService_error=Erreur lors de l''exportation de la biblioth\u00e8que : {0}
exportXMLService_feature_error=Erreur lors de la d\u00e9finition de la valeur de la fonction : Element={0}, feature={1}
xmlLibrary_error_load_xml=Impossible de charger la source XML ''{0}''
xmlLibrary_no_plugin=Pas de plug-in de m\u00e9thode pour l''identificateur {0}
xmlLibrary_no_feature=Impossible d''obtenir la fonction XML pour {0}_{1}
xmlLibrary_no_class=Impossible d''obtenir EClass pour {0}
xmlLibrary_error_create_element=Erreur lors de la cr\u00e9ation d''un \u00e9l\u00e9ment, Ignore comment d\u00e9finir la valeur de la fonction {0}
xmlLibrary_error_set_value=Erreur lors de la cr\u00e9ation d''un \u00e9l\u00e9ment, Impossible de d\u00e9finir la valeur {0} pour le conteneur {1}
xmlLibrary_invalid_feature_value=Valeur de la fonction d''attribut non valide pour la fonction {0}, avec la valeur {1}
xmlLibrary_error_set_value_2=Erreur lors de la d\u00e9finition d''un attribut, Impossible de d\u00e9finir une valeur pour feature={0}, object={1}, value={2}
xmlLibrary_error_set_value_3=Ignore comment d\u00e9finir une valeur pour feature={0}, object={1}, value={2}
xmlLibrary_error_set_reference=Erreur lors de la d\u00e9finition d''une r\u00e9f\u00e9rence, Impossible de d\u00e9finir une valeur pour feature={0}, object={1}, value={2}
xmlLibrary_error_process_wrong_container=Le processus ''{0}'' n''a pas de conteneur valide. Le conteneur est de type ''{1}'' qui n''est pas un package de processus
xmlLibrary_new_id=L''\u00e9l\u00e9ment {0} est affect\u00e9 \u00e0 un nouvel identificateur {1} car il ne dispose pas d''un identificateur valide
xmlLibrary_id_not_unique=L''identificateur de l''\u00e9l\u00e9ment ''{0}'' est utilis\u00e9 par plusieurs \u00e9l\u00e9ments


