#-------------------------------------------------------------------------------
# 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

# Plug-in
pluginName=Interface utilisateur d'autorisation EPF
providerName=Eclipse.org

# Category
methodCategoryName=M\u00e9thode

# Perspective
authoringPerspectiveName=Cr\u00e9ation
browsingPerspectiveName=Exploration

# Views
libraryViewName=Biblioth\u00e8que
configurationViewName=Configuration
contentViewName=Contenu
configurationErrorLogViewName=Journal des erreurs de configuration

# Editors
methodElementEditorName=Editeur d'\u00e9l\u00e9ment de m\u00e9thode
configurationEditorName=Editeur de configuration
processEditorName=Editeur de processus
activityDiagramEditorName=Editeur de diagramme d'activit\u00e9
activityDetailDiagramEditorName=Editeur de diagramme de d\u00e9tail d'activit\u00e9
workProductDepedencyDiagramEditorName=Editeur de diagramme de d\u00e9pendance de produit

# Cheat Sheets
methodAuthoringCheatSheetsName=Aide-m\u00e9moire de cr\u00e9ation de m\u00e9thode
CheatsheetGetstartedCategoryText=Mise en route
CheatsheetReusableContentCategoryText=Cr\u00e9er un contenu de m\u00e9thode r\u00e9utilisable
CheatsheetWriteContentCategoryText=Ecrire le contenu de la m\u00e9thode
CheatsheetProcessesCategoryText=G\u00e9rer les processus
CheatsheetNavigateMethodContent=Naviguer dans le contenu de la m\u00e9thode
CheatsheetCreateMethodConfiguration=Cr\u00e9er votre propre configuration de m\u00e9thode
CheatsheetCreateMethodPlugin=Cr\u00e9er votre propre plug-in de m\u00e9thode
CheatsheetAddMethodContent=Ajouter du nouveau contenu de m\u00e9thode tel que des r\u00f4les, des t\u00e2ches, des produits ou des conseils
CheatsheetTailorMethodElements=Personnaliser les \u00e9l\u00e9ments de m\u00e9thode existants (r\u00f4les, t\u00e2ches, produits ou conseils) \u00e0 l'aide de la contribution
CheatsheetReplaceMehtodElements=Remplacer les \u00e9l\u00e9ments de m\u00e9thode existants (r\u00f4les, t\u00e2ches, produits ou conseils)
CheatsheetAddMethodRefOrHyperlink=Ajouter une r\u00e9f\u00e9rence de m\u00e9thode ou un lien hypertexte (URL)
CheatsheetApplyCapabilityPattern=Appliquer un pattern de capacit\u00e9
CheatsheetCreateProcess=Cr\u00e9er un processus (pattern de capacit\u00e9 ou processus de livraison)

# Action Set
authoringActionSet=Cr\u00e9ation
cheatSheetsActionSet=Aide-m\u00e9moires

# Global Actions
newLibraryAction=&Biblioth\u00e8que de m\u00e9thodes
newLibraryActionTooltip=Cr\u00e9er une nouvelle biblioth\u00e8que de m\u00e9thodes
newPluginAction=&Plug-in de m\u00e9thode
newPluginActionTooltip=Cr\u00e9er un nouveau plug-in de m\u00e9thode
newConfigAction=&Configuration de m\u00e9thode
newConfigActionTooltip=Cr\u00e9er une nouvelle configuration de m\u00e9thode
openLibraryAction=&Biblioth\u00e8que de m\u00e9thodes
openLibraryActionTooltip=Ouvrir une biblioth\u00e8que de m\u00e9thodes existante
openConfigAction=&Configuration de m\u00e9thode
openConfigActionTooltip=Ouvrir une configuration de m\u00e9thode existante
openCheatSheets=Aide-m\u00e9moire...

# Library View Actions
linkWithEditor=Lien avec l'\u00e9diteur
linkWithEditorTooltip=Lien avec l'\u00e9diteur
showPresentationNames=Afficher les noms de pr\u00e9sentation
showPresentationNamesTooltip=Afficher les noms de pr\u00e9sentation

# Configuration View Actions
refreshConfig=Actualiser
refreshConfigTooltip=Actualiser la configuration

# Preference Page
methodAuthoringPage=Cr\u00e9ation de m\u00e9thode
processEditor=Editeur de processus
libraryOptions=Options de la biblioth\u00e8que
diagram=Diagramme
startupAndShutdown=D\u00e9marrage et arr\u00eat
debug=D\u00e9boguer

# Command Handler
selectAll=S\u00e9lectionner tout

# Properties View
_UI_ProcessEditor_menu=Processus
_UI_CreateChild_menu_item=&Nouvel enfant
_UI_CreateSibling_menu_item=N&ouveau fr\u00e8re/soeur
_UI_ShowPropertiesView_menu_item=&Afficher la vue Propri\u00e9t\u00e9s
_UI_RefreshViewer_menu_item=Act&ualiser
_UI_Properties_General=Dispositions g\u00e9n\u00e9rales
_UI_Properties_Documentation=Documentation
_UI_Properties_Guidance=Conseil
_UI_Properties_Work_Rollup=Cumul de travail
_UI_Properties_Team_Rollup=Cumul de l'\u00e9quipe
## The following value of string should be "Work Product Rollup". But
## due to limitation/bug in Eclipse WTP, it's been truncated to 
## "Work Prod Rollup". So during translation, please take this into consideration.
_UI_Properties_WP_Rollup=Cumul de produits
_UI_Properties_Roles=R\u00f4les
_UI_Properties_WorkProducts=Produits
_UI_Properties_Steps=Etapes
_UI_Properties_Teams=Equipes
