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

# 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

# Wizards
newMethodLibraryWizardName=Biblioth\u00e8que de m\u00e9thodes
newMethodLibraryWizardDescription=Cr\u00e9er une nouvelle biblioth\u00e8que de m\u00e9thodes.
newMethodPluginWizardName=Plug-in de m\u00e9thodes
newMethodPluginWizardDescription=Cr\u00e9er un nouveau plug-in de m\u00e9thodes.
newConfigurationWizardName=Configuration de m\u00e9thode
newConfigurationWizardDescription=Cr\u00e9er une nouvelle configuration de m\u00e9thode.

# 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\u00e9thodes
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\u00e9thodes
newPluginActionTooltip=Cr\u00e9er un nouveau plug-in de m\u00e9thodes
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=&Aides-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
authoringPreferencePage=Cr\u00e9ation
processEditor=Editeur de processus
libraryOptions=Options de la biblioth\u00e8que
startupAndShutdown=D\u00e9marrage et arr\u00eat
debug=D\u00e9boguer
modelingOptions=Options de mod\u00e9lisation
diagramAppearance=Aspect du diagramme
breakdownElementAttributes=Attributs d'\u00e9l\u00e9ment de r\u00e9partition
libraryViewOptions=Options de la vue Biblioth\u00e8que

# 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
_UI_Properties_WP_Rollup=Cumul de produit de travail
_UI_Properties_Roles=R\u00f4les
_UI_Properties_WorkProducts=Produits de travail
_UI_Properties_Steps=Etapes
_UI_Properties_Teams=Equipes

RichTextMarkerTypeName=Probl\u00e8mes HTML
ConfigurationMarkerTypeName=Probl\u00e8mes de configuration
ExplanationText=Explication

