#-------------------------------------------------------------------------------
# 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=Plateforme client enrichi du composeur EPF
productName=Composeur EPF
providerName=Eclipse.org

# 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 syst\u00e8me de l'aide
actionSet.label = Syst\u00e8me d'aide
searchAction.label = Aide de la recherche
searchAction.tooltip = Aide de la recherche
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.
