#-------------------------------------------------------------------------------
# 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

# Method Element Names (Singular)
activity_text=Activit\u00e9
artifact_text=Artefact
capabilityPattern_text=Pattern de capacit\u00e9
checklist_text=Liste de contr\u00f4le
checkItem_text=El\u00e9ment de v\u00e9rification
compositeRole_text=R\u00f4le composite
concept_text=Concept
contentPackage_text=Package de contenu
customCategory_text=Cat\u00e9gorie personnalis\u00e9e
deliverable_text=Livrable
deliveryProcess_text=Processus de livraison
descriptor_text=Descripteur
discipline_text=Discipline
disciplineGrouping_text=Regroupement de discipline
domain_text=Domaine
estimate_text=Estimation
estimatingMetric_text=Mesure d'estimation
estimationConsiderations_text=Consid\u00e9rations relatives \u00e0 l'estimation
example_text=Exemple
guidance_text=Conseil
guideline_text=Instructions
iteration_text=It\u00e9ration
methodConfiguration_text=Configuration de m\u00e9thode
methodContent_text=Contenu de la m\u00e9thode
methodLibrary_text=Biblioth\u00e8que de m\u00e9thodes
methodPackage_text=Package de m\u00e9thode
methodPlugin_text=Plug-in de m\u00e9thodes
milestone_text=Jalon
outcome_text=Sortie
phase_text=Phase
practice_text=Pratique
process_text=Processus
processContribution_text=Processus diff\u00e9rentiel
processFamily_text=Famille de processus
processPackage_text=Package de processus
report_text=Rapport
reusableAsset_text=Ressource r\u00e9utilisable
roadmap_text=Feuille de route
roleDescriptor_text=Descripteur de r\u00f4le
role_text=R\u00f4le
roleSet_text=Ensemble de r\u00f4les
roleSetGrouping_text=Regroupement d'ensembles de r\u00f4les
standardCategory_text=Cat\u00e9gorie standard
step_text=Etape
supportingMaterial_text=Documents d'accompagnement
task_text=T\u00e2che
taskDescriptor_text=Descripteur de t\u00e2che
teamProfile_text=Profil de l'\u00e9quipe
template_text=Canevas
termDefinition_text=D\u00e9finition du terme
tool_text=Outil
toolMentor_text=Guide d'utilisation de l'outil
whitepaper_text=Livre blanc
workProduct_text=Produit
workProductDescriptor_text=Descripteur de produit
workProductElement_text=El\u00e9ment de produit
workProductType_text=Type de produit

# Method Element Names (Plural)
activity_text_plural=Activit\u00e9s
artifact_text_plural=Artefacts
capabilityPattern_text_plural=Patterns de capacit\u00e9
checklist_text_plural=Listes de contr\u00f4le
checkItem_text_plural=El\u00e9ments de v\u00e9rification
compositeRole_text_plural=R\u00f4les composites
concept_text_plural=Concepts
contentPackage_text_plural=Packages de contenu
customCategory_text_plural=Cat\u00e9gories personnalis\u00e9es
deliverable_text_plural=Livrables
deliveryProcess_text_plural=Processus de livraison
descriptor_text_plural=Descripteurs
discipline_text_plural=Disciplines
disciplineGrouping_text_plural=Regroupements de disciplines
domain_text_plural=Domaines
estimate_text_plural=Estimations
estimatingMetric_text_plural=Mesures d'estimation
estimationConsiderations_text_plural=Consid\u00e9rations relatives \u00e0 l'estimation
example_text_plural=Exemples
guidance_text_plural=Conseils
guideline_text_plural=Instructions
iteration_text_plural=It\u00e9rations
methodConfiguration_text_plural=Configurations de m\u00e9thode
methodContent_text_plural=Contenus de m\u00e9thode
methodLibrary_text_plural=Biblioth\u00e8ques de m\u00e9thodes
methodPackage_text_plural=Packages de m\u00e9thodes
methodPlugin_text_plural=Plug-in de m\u00e9thodes
milestone_text_plural=Jalons
outcome_text_plural=Sorties
phase_text_plural=Phases
practice_text_plural=Pratiques
process_text_plural=Processus
processContribution_text_plural=Processus diff\u00e9rentiels
processFamily_text_plural=Familles de processus
processPackage_text_plural=Packages de processus
report_text_plural=Rapports
reusableAsset_text_plural=Ressources r\u00e9utilisables
roadmap_text_plural=Feuilles de route
roleDescriptor_text_plural=Descripteurs de r\u00f4le
role_text_plural=R\u00f4les
roleSet_text_plural=Ensembles de r\u00f4les
roleSetGrouping_text_plural=Regroupements d'ensembles de r\u00f4les
standardCategory_text_plural=Cat\u00e9gories standard
step_text_plural=Etapes
supportingMaterial_text_plural=Documents d'accompagnement
task_text_plural=T\u00e2ches
taskDescriptor_text_plural=Descripteurs de t\u00e2ches
teamProfile_text_plural=Profils d'\u00e9quipe
template_text_plural=Canevas
termDefinition_text_plural=D\u00e9finitions de termes
tool_text_plural=Outils
toolMentor_text_plural=Guides d'utilisation de l'outil
whitepaper_text_plural=Livres blancs
workProduct_text_plural=Produits de travail
workProductDescriptor_text_plural=Descripteurs de produits
workProductElement_text_plural=El\u00e9ments de produit
workProductType_text_plural=Types de produits

# Application title.
application_title={0} - {1}

# Open Method Library Wizard
openLibraryWizard_title=Ouvrir une biblioth\u00e8que de m\u00e9thodes
openLibraryMainWizardPage_title=Indiquer un chemin contenant une biblioth\u00e8que de m\u00e9thodes
openLibraryMainWizardPage_title_2=S\u00e9lectionner une biblioth\u00e8que de m\u00e9thodes
openLibraryMainWizardPage_text={0} stocke les m\u00e9thodes et les processus dans un dossier d\u00e9nomm\u00e9 \nbiblioth\u00e8que de m\u00e9thodes. S\u00e9lectionnez le dossier de biblioth\u00e8que de m\u00e9thodes \u00e0 utiliser pour cette session.
pathLabel_text=Chemin :
nameLabel_text=Nom :
uriLabel_text=URI :
openUnlistedLibraryCheckbox_text=Ouvrir une biblioth\u00e8que de m\u00e9thodes ne figurant pas dans la liste ci-dessus
libraryTypeLabel_text=Type :
libraryLabel_text=Biblioth\u00e8que :
browseButton_text=Parcourir...
promptForLibraryCheckbox_text=Utiliser par d\u00e9faut et ne plus reposer la question.
openLibraryDialog_newLibrary_text=Aucune biblioth\u00e8que de m\u00e9thodes dans ''{0}''.\nUne nouvelle biblioth\u00e8que de m\u00e9thodes sera cr\u00e9\u00e9e et ouverte automatiquement dans le r\u00e9pertoire indiqu\u00e9.\n\nCliquez sur OK pour continuer ou sur Annuler pour indiquer un autre chemin de biblioth\u00e8que de m\u00e9thodes.

# Select Method Library Folder Dialog
selectLibraryFolderDialog_title=S\u00e9lectionner une biblioth\u00e8que de m\u00e9thodes
selectLibraryFolderDialog_text=S\u00e9lectionner un dossier de biblioth\u00e8que de m\u00e9thodes.

# Open Library Progress Message
openingLibraryTask_name=Ouverture de la biblioth\u00e8que de m\u00e9thodes...

# Open Method Library Error Dialog
openLibraryError_msg=IUPL0301E : Impossible de cr\u00e9er la biblioth\u00e8que de m\u00e9thodes.
openLibraryInternlError_reason=Une erreur interne s'est produite.
openLibraryError_reason1=Le chemin de la biblioth\u00e8que de m\u00e9thodes indiqu\u00e9 ''{0}'' est incorrect.
openLibraryError_reason2=Une biblioth\u00e8que de m\u00e9thodes existe d\u00e9j\u00e0 dans ''{0}''.
openLibraryError_reason3=Impossible de cr\u00e9er le dossier de biblioth\u00e8que de m\u00e9thodes ''{0}'' indiqu\u00e9.
openLibraryError_reason4=Le dossier de biblioth\u00e8que de m\u00e9thodes indiqu\u00e9 est un dossier d'exportation de de plug-in ou de sp\u00e9cification de configuration.
openLibraryError_advice=S\u00e9lectionnez OK pour indiquer un autre chemin de biblioth\u00e8que de m\u00e9thodes.

# Open Method Library Error Messages
invalidLibraryPath_msg=IUPL0302E : Impossible d'ouvrir la biblioth\u00e8que de m\u00e9thodes sp\u00e9cifi\u00e9e.
invalidLibraryPath_reason=Le dossier de biblioth\u00e8que de m\u00e9thodes s\u00e9lectionn\u00e9 n'est pas valide, n'existe pas ou vous n'\u00eates pas autoris\u00e9 \u00e0 y acc\u00e9der.\n\nCliquez sur OK pour s\u00e9lectionner un autre dossier de biblioth\u00e8que.

# Read-only Project File Error Dialog
readOnlyProjectFile_text=IUPL0304E : ''{0}'' est en lecture seule. Avant de continuer, rendez-le modifiable.
retryButton_text=R\u00e9essayer
cancelButton_text=Annuler

# Version Mismatch Dialog
versionMismatchDialog_text=IUPL305E : Impossible d''ouvrir la biblioth\u00e8que s\u00e9lectionn\u00e9e. Vous devez effectuer une mise \u00e0 niveau de {0} vers la version {1} ou sup\u00e9rieure afin d''ouvrir cette biblioth\u00e8que.
versionMismatchDialog_text_unknown=IUPL306E: Impossible d''ouvrir la biblioth\u00e8que s\u00e9lectionn\u00e9e. Vous devez effectuer une mise \u00e0 niveau de la version {0} \u00e0 une version sup\u00e9rieure afin d''ouvrir cette biblioth\u00e8que.

# Upgrade Method Library Dialog
upgradeLibraryDialog_title=Mettre \u00e0 niveau de la biblioth\u00e8que de m\u00e9thodes
upgradeLibraryDialog_text=La biblioth\u00e8que que vous avez s\u00e9lectionn\u00e9e doit \u00eatre mise \u00e0 niveau vers la nouvelle structure de biblioth\u00e8que.\n\nVoulez-vous effectuer la mise \u00e0 niveau ?
upgradingLibraryTask_name=Mise \u00e0 niveau de la biblioth\u00e8que de m\u00e9thodes...

# Upgrade Library Error Dialog
upgradeLibraryError_msg=IUPL0306E : Echec de la mise \u00e0 niveau de la biblioth\u00e8que de m\u00e9thodes. Consultez le fichier journal pour plus de d\u00e9tails.

# Switch Configuration Dialog
switchConfigDialog_title=Changer la configuration
switchConfigDialog_text=Voulez-vous changer la configuration en cours au profit de la configuration par d\u00e9faut, ''{0}'', associ\u00e9e au processus s\u00e9lectionn\u00e9 ?
	
# Configuration Combo
currentConfigLabel_text=Configuration en cours :
selectConfigLabel_text=S\u00e9lectionnez une configuration

# Delete Files Confirmation Message
deleteFilesConfirmation_msg=Le chemin sp\u00e9cifi\u00e9 ''{0}'' existe d\u00e9j\u00e0. Tous les fichiers du dossier seront supprim\u00e9s. Voulez-vous continuer ?

# Paths/Files Error Messages
deleteFilesError_reason=Le chemin ''{0}'' contient un ou plusieurs fichiers qui ne peuvent pas \u00eatre supprim\u00e9s.\n\nS\u00e9lectionnez un autre chemin et r\u00e9essayez.
createPathError_reason=Impossible de cr\u00e9er le chemin ''{0}''.\n\nS\u00e9lectionnez un autre chemin et r\u00e9essayez.
invalidPath_msg=Le chemin indiqu\u00e9 est incorrect.
overrideCurrentLibraryError_msg0=Vous ne pouvez exporter vers un chemin contenant la biblioth\u00e8que de m\u00e9thodes actuellement ouverte ; s\u00e9lectionnez un autre chemin et refaites une tentative.

# Backup Library Dialog
backupLibraryDialog_title=Sauvegarder la biblioth\u00e8que
backupLibraryDialog_text=Il est fortement conseill\u00e9 de sauvegarder la biblioth\u00e8que de m\u00e9thodes en cours avant de poursuivre.\n\nCliquez sur OK pour cr\u00e9er une copie de sauvegarde de la biblioth\u00e8que dans le r\u00e9pertoire sp\u00e9cifi\u00e9. Cliquez sur Ignorer pour continuer sans cr\u00e9er la sauvegarde.
backingUpLibraryTask_name=Sauvegarde de la biblioth\u00e8que de m\u00e9thodes...

# Copy Library Dialog
copyLibraryDialog_title=Copier la biblioth\u00e8que
copyLibraryDialog_text_readOnlyLib=La biblioth\u00e8que ne peut \u00eatre \u00e9crite. Cliquez sur Copier pour cr\u00e9er une copie inscriptible de la biblioth\u00e8que dans le r\u00e9pertoire sp\u00e9cifi\u00e9. Cliquez sur Ignorer pour continuer sans cr\u00e9er la copie.
copyLibraryTask_name=Cr\u00e9ation en cours d'une copie des fichiers de la biblioth\u00e8que...
copyLibraryDialog_copyButton_text=Copier

# Path Selection Dialog
pathSelectionError_msg=Impossible de cr\u00e9er le r\u00e9pertoire
okButton_text=OK
skipButton_text=Ignorer

# Process Editor preferences
alwaysButton_text=Toujours
neverButton_text=Jamais
promptButton_text=Demander

# Add Link Dialog
linkToURL_name=URL
linkToFile_name=Fichier
elementLink_name=El\u00e9ment de m\u00e9thode
elementLinkWithType_name=El\u00e9ment de m\u00e9thode avec pr\u00e9fixe de type
elementLinkWithUserText_name=El\u00e9ment de m\u00e9thode avec texte personnalis\u00e9

# Convert Activity Type Dialog
convertActivityDialog_title=Convertir le type d'activit\u00e9
convertActivityDialog_text=S\u00e9lectionner le type d'activit\u00e9 cible.
unsupportedActivityType_msg=IUPL0307E : Cette activit\u00e9 ne peut pas \u00eatre convertie dans un autre type.
unsupportedActivityType_reason=Aucun type d''activit\u00e9 compatible pour {0}.

# Select Process Wizard Page
selectProcessWizardPage_title=S\u00e9lectionner un processus
selectProcessWizardPage_text=S\u00e9lectionner un pattern de capacit\u00e9 ou un processus de livraison \u00e0 exporter.
processesLabel_text=Processus :
briefDescriptionLabel_text=Descriptif rapide :

# Export Process Wizard Error Message.
noOpenLibraryWarning_msg=IUPL0308E : Aucune biblioth\u00e8que de m\u00e9thodes n'est actuellement ouverte. Cliquez sur OK, ouvrez une biblioth\u00e8que de m\u00e9thodes ou cr\u00e9ez-en une nouvelle, puis relancez cet assistant. 

# Moved from Authoring UI plug-in to avoid Authoring UI dependency
errorDialog_title=Erreur
MethodElementDeleteAction_deleteconfirm_text=Etes-vous s\u00fbr de vouloir supprimer ''{0}'' ?
confirmDeleteDialog_title=Confirmer la suppression
confirmDeleteDialog_msg=Etes-vous s\u00fbr de vouloir supprimer ''{0}'' ?
confirmDeleteDialog_msgWithReference=Etes-vous s\u00fbr de vouloir supprimer ''{0}'' ?\n\nLe(s) \u00e9l\u00e9ment(s) suivant(s) contient(-tiennent) des r\u00e9f\u00e9rences \u00e0(aux) \u00e9l\u00e9ment(s) \u00e0 supprimer : {1}
ProcessDeleteAction_deletecofirm_text=Cette op\u00e9ration enregistrera l''\u00e9diteur en cours et la modification sera d\u00e9finitive. Etes-vous s\u00fbr de vouloir supprimer ''{0}'' ?

# Save Method Library Dialog
saveLibraryDialog_title=Sauvegarder la biblioth\u00e8que de m\u00e9thodes
saveLibraryDialog_text=La biblioth\u00e8que de m\u00e9thodes en cours a \u00e9t\u00e9 modifi\u00e9e. Voulez-vous enregistrer les modifications ?

# Save Method Library Error Messages
saveLibraryError_msg=IUPL0308E : Impossible d'enregistrer la biblioth\u00e8que de m\u00e9thodes.
error_reason=Une erreur s'est produite.\n\nCliquez sur D\u00e9tails pour plus d'informations.

# ElementTreeContentProvider Strings
elementTCProvider_methodContent=Contenu de la m\u00e9thode
elementTCProvider_contentPackages=Packages de contenu
elementTCProvider_standardCategories=Cat\u00e9gories standard
elementTCProvider_disciplines=Disciplines
elementTCProvider_domains=Domaines
elementTCProvider_workProductTypes=Types de produits
elementTCProvider_roleSets=Ensembles de r\u00f4les
elementTCProvider_tools=Outils
elementTCProvider_customCategories=Cat\u00e9gories personnalis\u00e9es
elementTCProvider_processes=Processus
elementTCProvider_capabilityPatterns=Patterns de capacit\u00e9
elementTCProvider_deliveryProcesses=Processus de livraison

