# 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

# 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.
convertToSynProcessLib_msg=Convertir en biblioth\u00e8que auto-synchronis\u00e9e

# 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 que vous ouvrez est une biblioth\u00e8que par d\u00e9faut fournie avec le composeur.  Il est hautement recommand\u00e9 d'effectuer une copie de travail de cette biblioth\u00e8que pour l'\u00e9dition.\n\nEntrez un emplacement et un nom pour la nouvelle biblioth\u00e8que et cliquez sur "Copier" pour effectuer une copie de travail.\n\nCliquez sur "Ignorer" pour continuer d'\u00e9diter la biblioth\u00e8que par d\u00e9faut \u00e0 l'emplacement actuel. La fonction d'\u00e9dition de biblioth\u00e8que par d\u00e9faut est restreinte par les droits d'acc\u00e8s appliqu\u00e9s par vos plateformes.
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 produit de travail
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
