#-------------------------------------------------------------------------------
# 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=Exportation EPF
providerName=Eclipse.org

# Perspective
packagingPerspectiveName=Regroupement

# Category
packagingCategoryName=Regroupement

# Views
packagingViewName=Biblioth\u00e8que de m\u00e9thodes de regroupement
packagingMessageViewName=Message de regroupement de biblioth\u00e8ques

# Action Set
packagingActionSet=Regroupement

# Actions
newConfigAction=&Configuration
newConfigActionTooltip=Cr\u00e9er une nouvelle configuration de biblioth\u00e8que
openConfigAction=&Configuration
openConfigActionTooltip=Ouvrir une configuration de biblioth\u00e8que existante

# Export Wizard Category
exportCategoryName=M\u00e9thode

# Export Library Configuration Wizard
exportLibraryConfigurationWizardName=Configuration de biblioth\u00e8que
exportLibraryConfiguration=Exporter une configuration de biblioth\u00e8que.

# Export Method Plug-ins Wizard
exportMethodPluginsWizardName=Plug-ins de m\u00e9thode
exportMethodPlugins=Exporter un ou plusieurs plug-ins de m\u00e9thode.



               
