#-------------------------------------------------------------------------------
# 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: IUPE0000E - IUPE0099E
#

# Export Library Configuration Wizard
exportConfigWizard_title=Exporter la configuration de la biblioth\u00e8que
selectExportTypePage_title=S\u00e9lectionner le type d'exportation
selectExportTypePage_desc=S\u00e9lectionner le type de configuration de biblioth\u00e8que \u00e0 exporter.
selectExportTypePage_configLabel_text=Exportez une configuration de m\u00e9thode et tous ses plug-ins de m\u00e9thode
selectExportTypePage_configSpecsLabel_text=Exportez une ou plusieurs sp\u00e9cifications de configuration de m\u00e9thode
selectConfigPage_title=S\u00e9lectionner la configuration de m\u00e9thode
selectConfigPage_desc=S\u00e9lectionnez une configuration de m\u00e9thode \u00e0 exporter. Tous les plug-ins de m\u00e9thode r\u00e9f\u00e9renc\u00e9s dans la configuration s\u00e9lectionn\u00e9e seront inclus dans l'exportation.
selectConfigPage_configsLabel_text=Configurations de m\u00e9thode :
selectConfigSpecsPage_title=S\u00e9lectionner les sp\u00e9cifications de configuration
selectConfigSpecsPage_desc=S\u00e9lectionnez une ou plusieurs sp\u00e9cifications de configuration de m\u00e9thode \u00e0 exporter.
selectConfigSpecsPage_configsLabel_text=Configurations de m\u00e9thode :
checkConfigPage_title=R\u00e9viser les erreurs de configuration
checkConfigPage_desc=Un contr\u00f4le d'int\u00e9grit\u00e9 a \u00e9t\u00e9 r\u00e9alis\u00e9 sur la configuration de m\u00e9thode s\u00e9lectionn\u00e9e. R\u00e9visez le rapport d'erreurs et effectuez les actions correctives n\u00e9cessaires.
selectDestinationPage_title=Sp\u00e9cifier le r\u00e9pertoire d'exportation
selectDestinationPage_desc=Sp\u00e9cifiez un r\u00e9pertoire de destination pour stocker la configuration export\u00e9e.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Exporter les plug-ins de m\u00e9thode
selectPluginsPage_title=S\u00e9lectionner les plug-ins de m\u00e9thode
selectPluginsPage_desc=S\u00e9lectionnez un ou plusieurs plug-ins de m\u00e9thode \u00e0 exporter.
selectPluginsPage_pluginsLabel_text=Plug-ins de m\u00e9thode :
reviewPluginsPage_title=R\u00e9viser les d\u00e9pendances
reviewPluginsPage_desc=S\u00e9lectionnez chaque plug-in de m\u00e9thode pour r\u00e9viser ses d\u00e9pendances. Cliquez sur Pr\u00e9c\u00e9dent pour s\u00e9lectionner les plug-ins d\u00e9pendants s'ils doivent \u00eatre inclus dans l'exportation.
reviewPluginsPage_pluginsLabel_text=Plug-ins de m\u00e9thode :
reviewPluginsPage_dependentPluginsLabel_text=Plug-ins de m\u00e9thode d\u00e9pendants :
reviewPluginsPage_associatedConfigsLabel_text=Configurations de m\u00e9thode associ\u00e9es :
exportPluginSummaryPage_title=Confirmer l'exportation
exportPluginSummaryPage_desc=Confirmez les plug-ins de m\u00e9thode \u00e0 exporter.
exportPluginSummaryPage_noPlugin_text=Aucun plug-in de m\u00e9thode n'a \u00e9t\u00e9 s\u00e9lectionn\u00e9.
specifyPathPage_title=Sp\u00e9cifier le r\u00e9pertoire d'exportation
specifyPathPage_desc=Sp\u00e9cifiez un r\u00e9pertoire de destination pour stocker les plug-ins de m\u00e9thode export\u00e9s.
SavePluginPage_desc=Exportez les plug-ins et configurations s\u00e9lectionn\u00e9s vers le r\u00e9pertoire de destination indiqu\u00e9.
ExportPluginWizard_title=Erreur de l'assistant Exporter le plug-in de m\u00e9thode
ExportPluginError_msg=IUPE0000E : Erreur lors de l'exportation

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Exporter la configuration de la biblioth\u00e8que
exportConfigErrorDialog_msg=IUPE0001E : L'op\u00e9ration d'exportation ne peut pas se poursuivre.

# Progress Messages
analyzingConfigTask_name=Analyse de la configuration de la biblioth\u00e8que...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Exportation de la configuration...
ConfigurationSpecsExportService_MSG1=Exportation termin\u00e9e.
ExportConfigCheckingPage_summary_1=V\u00e9rification de l'int\u00e9grit\u00e9 de la configuration s\u00e9lectionn\u00e9e...\n
ExportConfigCheckingPage_summary_2=Aucune configuration s\u00e9lectionn\u00e9e.\n
ExportConfigCheckingPage_summary_3=Aucun probl\u00e8me dans la configuration s\u00e9lectionn\u00e9e.\n
ExportConfigCheckingPage_summary_4=La configuration s\u00e9lectionn\u00e9e contient {0} probl\u00e8mes. \nVous pouvez ouvrir l''\u00e9diteur de configuration et corriger ces probl\u00e8mes. \nVous pouvez \u00e9galement choisir d''ignorer ces probl\u00e8mes et continuer.
ExportConfigCheckingPage_checking=V\u00e9rification de la configuration, veuillez patienter...
ExportConfigSelectConfigPage_title=Choisir la configuration de m\u00e9thode
DestinationCommonPage_label_browse=Parcourir...
DestinationCommonPage_label_default_dir=Utiliser le r\u00e9pertoire par d\u00e9faut
ConfigurationExportService_MSG0=Exportation de la configuration...
ConfigurationExportService_MSG2=IUPE0002E : Echec de l'exportation : Erreur lors du chargement de la biblioth\u00e8que
ConfigurationExportService_MSG4=IUPE0003E : Echec de l'exportation : Erreur lors de la copie de la biblioth\u00e8que
ConfigurationExportService_MSG1=IUPE0004E : Echec de l'exportation : Erreur lors de la fermeture de la configuration de la biblioth\u00e8que
ConfigurationExportService_MSG9=IUPE0005E : Echec de l'exportation : Erreur lors de la sauvegarde de la biblioth\u00e8que
DestinationCommonPage_label_name=Nom :
DestinationCommonPage_label_dir=R\u00e9pertoire :
ExportPluginWizard_error=Erreur
DestinationCommonPage_title=Titre par d\u00e9faut
DestinationCommonPage_desc=Description par d\u00e9faut :
PluginExportService_MSG0=Exportation des plug-ins...
PluginExportService_MSG1=Cr\u00e9ation du r\u00e9pertoire d'exportation...
PluginExportService_MSG2=Copie des fichiers en cours...
PluginExportService_MSG3=G\u00e9n\u00e9ration de la biblioth\u00e8que et des fichiers de ressources...
PluginExportService_MSG4=Exportation termin\u00e9e.
SaveLibraryPage_title=Exporter un plug-in de m\u00e9thode
SavePluginPage_label_name=Nom d'exportation :
SaveLibraryPage_desc=Exporter les plug-ins de m\u00e9thode s\u00e9lectionn\u00e9s et les configurations associ\u00e9es
ExportPluginWizard_MSG1=Analyse de la configuration de la biblioth\u00e8que...
