#-------------------------------------------------------------------------------
# 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

# Publish Method Configuration Wizard
publishConfigWizard_title=Publier la configuration de m\u00e9thode
publishConfigWizard_selectConfigPage_title=S\u00e9lectionner la configuration de m\u00e9thode
publishConfigWizard_selectConfigPage_text=S\u00e9lectionnez la configuration de m\u00e9thode que vous souhaitez publier.
publishConfigWizard_selectOptionsPage_title=Sp\u00e9cifier les options de publication
publishConfigWizard_selectOptionsPage_text=Sp\u00e9cifiez le r\u00e9pertoire de destination et les options de publication.
publishConfigWizard_methodConfig_text=Configuration de m\u00e9thode :
publishConfigWizard_destinationGroup_text=R\u00e9pertoire de destination
publishConfigWizard_directory_text=Chemin :
publishConfigWizard_useDefaultPath_text=Utilisez le chemin par d\u00e9faut
publishConfigWizard_webSite_text=Site Web publi\u00e9
publishConfigWizard_title_text=Titre :
publishConfigWizard_bannerImage_text=Image de la banni\u00e8re :
publishConfigWizard_aboutHTML_text=Contenu de la rubrique A propos de :
publishConfigWizard_feedbackURL_text=URL destin\u00e9e aux retours d'informations :
publishConfigWizard_includeIndex_text=Publiez la page d'index
publishConfigWizard_includeGlossary_text=Publiez la page de glossaire
publishConfigWizard_includeSearch_text=Incluez la fonction de recherche (n\u00e9cessite la prise en charge de l'applet Java dans le navigateur)
publishConfigWizard_useApplet_text=Prise en charge de la personnalisation des vues (n\u00e9cessite la prise en charge de l'applet Java dans le navigateur)
publishConfigWizard_validationGroup_text=Validation
publishConfigWizard_checkHyperlinks_text=V\u00e9rifiez les liens hypertextes externes
publishConfigWizard_diagramGroup_text=Diagrammes
publishConfigWizard_publish_unopen_activity_dd_text=Publiez les diagrammes d\u00e9taill\u00e9s d'activit\u00e9 qui n'ont pas \u00e9t\u00e9 cr\u00e9\u00e9s dans l'\u00e9diteur de processus
publishConfigWizard_publish_extend_activity_diagram=Publiez les diagrammes d'activit\u00e9 pour des extensions d'activit\u00e9s non modifi\u00e9es
publishConfigWizard_convertBrokenLinks_text=Convertir les liens rompus en texte clair
publishConfigWizard_layout_text=Disposition
publishConfigWizard_extraDescriptorInfo_text=Publiez les descripteurs avec le contenu entier de l'\u00e9l\u00e9ment du contenu de m\u00e9thode associ\u00e9
publishConfigWizard_lightWeightTree_text=G\u00e9n\u00e9rez une structure de sous-arbres pour la t\u00e2che, le r\u00f4le, le produit et les \u00e9l\u00e9ments de discipline sans utiliser de dossiers
publishConfigWizard_includeEmptyCategories_text=Publiez des cat\u00e9gories sans aucun \u00e9l\u00e9ment cat\u00e9goris\u00e9

# publish process wizard page
PublishConfigSelectProcessPage_title=S\u00e9lectionner le type de publication
PublishConfigSelectProcessPage_text=Vous pouvez publier la configuration s\u00e9lectionn\u00e9e ou les processus sp\u00e9cifi\u00e9s dans la configuration
PublishConfigSelectProcessPage_label_capability_pattern=Patterns de capacit\u00e9
PublishConfigSelectProcessPage_label_delivery_process=Processus de livraison
PublishConfigSelectProcessPage_label_selectType=S\u00e9lectionner le type de publication
PublishConfigSelectProcessPage_label_type_processes=Publier les processus s\u00e9lectionn\u00e9s ci-dessous :
PublishConfigSelectProcessPage_label_type_config=Publier la configuration s\u00e9lectionn\u00e9e
PublishConfigSelectProcessPage_label_publish_base_processes=Publier les processus de base r\u00e9f\u00e9renc\u00e9s

# Publishing Preference Page
preferencePage_defaultPath_text=Chemin par d\u00e9faut :

# Confirmation Dialogs
publishConfigDialog_title=Publier la configuration de m\u00e9thode
confirmPathDialog_text=Le chemin de destination a \u00e9t\u00e9 r\u00e9solu en ''{0}''. Voulez-vous continuer ?
overwriteDialog_text=Le chemin de destination ''{0}'' existe d\u00e9j\u00e0. Tous les fichiers du dossier seront supprim\u00e9s. Voulez-vous continuer ?
cancelPublishConfig_msg=L'op\u00e9ration de publication a \u00e9t\u00e9 annul\u00e9e.

# Error Dialogs
previewConfigError_title=Pr\u00e9visualiser la configuration de m\u00e9thode publi\u00e9e
viewReportError_title=Afficher le rapport de publication

# Error Messages
missingViewError_msg=IUPP0100W : La configuration s\u00e9lectionn\u00e9e ne contient pas de vue valide. Modifiez cette configuration et ajoutez une vue ou s\u00e9lectionnez une autre configuration.
cannotPublishError_msg=IUPP0101E : Impossible de publier la configuration s\u00e9lectionn\u00e9e.
invalidPathError_msg=IUPP0102E : Le chemin de destination est vierge ou non valide.
invalidPathCharsError_msg=IUPP0103E : Le chemin de destination ne peut pas contenir les caract\u00e8res suivants : \\ # * ? " < > | ! % /
publishConfigError_msg=IUPP0104E : Echec de publication de la configuration s\u00e9lectionn\u00e9e.
previewConfigError_msg=IUPP0105E : Impossible d'ouvrir un navigateur HTML pour pr\u00e9visualiser la configuration publi\u00e9e.
viewReportError_msg=IUPP0106E : Impossible d'ouvrir un navigateur HTML pour afficher le rapport de publication.

# Error Reasons & Recommended Actions
publishConfigError_reason=IUPP0107E : Une erreur s'est produite. S\u00e9lectionnez le bouton D\u00e9tails pour plus d'informations.
deleteFilesError_reason=Le chemin de destination ''{0}'' contient des fichiers qui ne peuvent pas \u00eatre supprim\u00e9s.\n\nFermez cette bo\u00eete de dialogue et sp\u00e9cifiez un autre chemin.
createDirError_reason=Impossible de cr\u00e9er le chemin de destination ''{0}''.\n\nFermez cette bo\u00eete de dialogue et sp\u00e9cifiez un autre chemin.
openBrowserError_reason=Impossible de d\u00e9tecter ou de localiser le navigateur HTML par d\u00e9faut pour ce syst\u00e8me.\n\nFermez cette bo\u00eete de dialogue et ouvrez le fichier ''{0}'' manuellement \u00e0 l''aide d''un navigateur HTML.
