#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 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'EPF Composer RCP
productName=Composeur EPF
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version : {1}\n\
Intitul\u00e9 de version : {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2008. All Rights Reserved.\n

# Category
methodCategoryName=M\u00e9thode

# Views
welcomeViewName=Bienvenue

# Actions
globalActionSet=Jeu d'actions global
newAction=&Nouveau
newActionTooltip=Nouveau
openAction=&Ouvrir...
openActionTooltip=Ouvrir
searchAction=&Rechercher...
searchActionTooltip=Rechercher
welcomeAction=&Bienvenue
welcomeActionToolTip=Bienvenue

# Tooltips
shortcut.overview.tooltip=Retourner \u00e0 la page G\u00e9n\u00e9ralit\u00e9s
shortcut.tutorials.tooltip=Retourner \u00e0 la page Tutoriel
shortcut.firststeps.tooltip=Retourner \u00e0 la page Premiers pas
shortcut.webresources.tooltip=Retourner \u00e0 la page Ressources Web       

#Action Set
actionSet.description = Actions de la barre d'outils du syst\u00e8me d'aide
actionSet.label = Syst\u00e8me d'aide
searchAction.label = &Rechercher dans l'aide
searchAction.tooltip = Rechercher dans l'aide
dynamicHelpAction.label = Aide &dynamique 
dynamicHelpAction.tooltip = Aide dynamique

#Activities/Capabilities
activity.general=Importer et exporter des projets et des ressources
activity.general.desc=Utilisez les fonctions standard Importer/Exporter le projet/les ressources d'Eclipse.
activity.team.cvs=Prise en charge CVS
activity.team.cvs.desc=Utilisez le syst\u00e8me CVS (Concurrent Versions System) pour g\u00e9rer les ressources.
activity.team=Prise en charge de l'\u00e9quipe principale
activity.team.desc=Partagez des projets \u00e0 l'aide des syst\u00e8mes de gestion de configuration.

activity.cat.general=Dispositions g\u00e9n\u00e9rales
activity.cat.general.desc=Utilisez les fonctions standard d'Eclipse.
activity.cat.team=Equipe
activity.cat.team.desc=Utilisez les syst\u00e8mes de gestion de configuration pour g\u00e9rer les ressources.

PreferencePages.Capabilities = Fonctions
PreferencePages.Capabilities.activityName = &Fonctions
PreferencePages.Capabilities.categoryName = &Fonctions
PreferencePages.Capabilities.activityPromptButton = &Invite lors de l'activation des fonctions
PreferencePages.Capabilities.activityPromptButtonTooltip = Lorsqu'une fonction est utilis\u00e9e pour la premi\u00e8re fois, une invite s'affiche et exige l'activation des fonctions
PreferencePages.Capabilities.captionMessage = Les fonctions vous permettent d'activer ou de d\u00e9sactiver plusieurs composants de produit.  Ces fonctions sont regroup\u00e9es selon un ensemble de cat\u00e9gories pr\u00e9d\u00e9finies.
