#-------------------------------------------------------------------------------
# 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
#
# Message ID Range: IUPP0000E - IUPP0099E
#

# Progress Messages
publishingConfigurationTask_name=Publication de la configuration...
initializingDirTask_name=Initialisation du r\u00e9pertoire de destination...
copyingFilesTask_name=Copie des fichiers en cours...
generatingBookmarksTask_name=G\u00e9n\u00e9ration des signets...
generatingBookmarkTask_name=G\u00e9n\u00e9ration du signet ''{0}''...
generatingBookmarkIndexTask_name=G\u00e9n\u00e9ration de l'index du signet...
publishingLinkedElementTask_name=Publication des \u00e9l\u00e9ments de m\u00e9thode : {0} publi\u00e9(s), {1} restant(s)
publishingElementTask_name=Publication de l''\u00e9l\u00e9ment de m\u00e9thode : {0} : {1}
generatingGlossaryTask_name=G\u00e9n\u00e9ration du glossaire...
generatingSearchIndexTask_name=G\u00e9n\u00e9ration de l'index de l'aide...
buildingProcessClosureTask_name=G\u00e9n\u00e9ration de la fermeture du processus...
buildingElementClosureTask_name=G\u00e9n\u00e9ration de la fermeture de l''\u00e9l\u00e9ment pour ''{0}''...
loadLibraryTask_name=Chargement du contenu de la biblioth\u00e8que...

# Error Messages logged in the Publishing Report
publishElementError_msg=IUPP0000E : Erreur de publication de l''\u00e9l\u00e9ment : {0}
serverError_msg=IUPP0001E : Aucune donn\u00e9e renvoy\u00e9e par le serveur.
invalidHttpResponseError_msg=IUPP0002E : R\u00e9ponse non valide de http://{0}:{1}:{2}

# Warning Messages logged in the Publishing Report
invalidElementWarning_msg=IUPP0003W : L'\u00e9l\u00e9ment n'a pas \u00e9t\u00e9 publi\u00e9 car il n'est pas un \u00e9l\u00e9ment valide de la configuration.
invalidMethodElementWarning_msg=IUPP0004W : L''\u00e9l\u00e9ment n''a pas \u00e9t\u00e9 publi\u00e9 car il n''est pas un \u00e9l\u00e9ment de m\u00e9thode : {0}
copyFileWarning_msg=IUPP0005W : Impossible de copier le fichier de ''{0}'' vers ''{1}''.
missingIconFileWarning_msg=IUPP0006W : Le fichier d''ic\u00f4ne de noeud ''{0}'' n''existe pas.
missingIconNameWarning_msg=IUPP0007W : Impossible de r\u00e9cup\u00e9rer le nom de l'ic\u00f4ne de noeud.
externalUrl_msg=r\u00e9f\u00e9rencement de l''URL externe : {0}
discaredCategoryWarning_msg=Videz l'\u00e9l\u00e9ment de cat\u00e9gorie de contenu non publi\u00e9.

# Error Details
createSearchIndexError_msg=IUPP0008E : L'index de l'aide n'a pas \u00e9t\u00e9 cr\u00e9\u00e9.

# Process Tree Nodes
referenceWorkflowsNode_text=Encha\u00eenements d'activit\u00e9s de r\u00e9f\u00e9rence
taskNode_text=T\u00e2ches
primarilyPerformsNode_text=Effectue principalement
additionallyPerformsNode_text=Effectue \u00e9galement
performingRolesNode_text=Ex\u00e9cution des r\u00f4les
inputWorkProductsNode_text=Produits d'entr\u00e9e
outputWorkProductsNode_text=Produits de sortie
responsibleForNode_text=Responsable de
modifiesNode_text=Modifie
responsibleRoleNode_text=R\u00f4le responsable
containingWorkProductNode_text=Produit contenant
containedWorkProductsNode_text=Produits contenus
guidanceNode_text=Conseil
inputToNode_text=Entr\u00e9e vers
outputFromNode_text=Sortie de

# HTML Title for Index Page
indexLabel_text=Index
