# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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:
#

# 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-in de m\u00e9thodes
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 ?
overwriteText_msg1=''{0}'' existe d\u00e9j\u00e0.\nVoulez-vous l''\u00e9craser ainsi que le dossier ''{1}'' qu''il contient ?

# 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\u00e9thodes pour l''ID {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

export_config_to_temp_location=Exporter la configuration vers un emplacement temporaire
open_lib_from_temp_exported_location=Ouvrir la biblioth\u00e8que \u00e0 partir de l'emplacement d'exportation temporaire


