#-------------------------------------------------------------------------------
# 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

unknown_text=Inconnu

# Error Reasons
emptyLibraryPathError_reason=Le chemin de la biblioth\u00e8que de m\u00e9thodes est vide.
missingLibraryFileError_reason=Le fichier de mod\u00e8le de la biblioth\u00e8que de m\u00e9thodes est manquant.
unresolvedProxyError_reason=La biblioth\u00e8que de m\u00e9thodes s\u00e9lectionn\u00e9e contient des r\u00e9f\u00e9rences d'\u00e9l\u00e9ments non r\u00e9solues. Ceci est g\u00e9n\u00e9ralement d\u00fb \u00e0 des fichiers XMI manquants ou ayant \u00e9t\u00e9 d\u00e9plac\u00e9s dans le dossier Biblioth\u00e8que.\n\nFermez cette bo\u00eete de dialogue et affichez la vue Probl\u00e8mes afin d'identifier les r\u00e9f\u00e9rences non r\u00e9solues. Afin d'\u00e9viter d'endommager la biblioth\u00e8que, il est fortement recommand\u00e9 de commencer par r\u00e9soudre ces r\u00e9f\u00e9rences avant d'ajouter d'autres modifications \u00e0 la biblioth\u00e8que.

# Warning Messages
configClosureWarning_msg1=IUPL0007W : un ou plusieurs \u00e9l\u00e9ments enfant contiennent des r\u00e9f\u00e9rences manquantes
configClosureWarning_msg2=IUPL0008W: Cet \u00e9l\u00e9ment doit \u00eatre s\u00e9lectionn\u00e9 afin de r\u00e9soudre une ou plusieurs r\u00e9f\u00e9rences manquantes
configClosureWarning_msg3=IUPL0009W: Cet \u00e9l\u00e9ment r\u00e9f\u00e9rence un ou plusieurs \u00e9l\u00e9ments d'un package non s\u00e9lectionn\u00e9

# Error Messages
loadResourcesError_msg=IUPL0000E : La biblioth\u00e8que de m\u00e9thodes a \u00e9t\u00e9 charg\u00e9e mais des erreurs ont \u00e9t\u00e9 d\u00e9tect\u00e9es.
unsupportedGuidanceTypeError_msg=IUPL0001E : Ce conseil ne peut pas \u00eatre converti dans un autre type.
convertGuidanceError_msg=IUPL0002E : Ce conseil ne peut pas \u00eatre converti dans le type cible.
saveConvertedGuidanceError_msg=IUPL0003E : Impossible de sauvegarder le conseil converti ''{0}''.

# Convert activity
convertActivityError_title=Erreur de conversion de type d'activit\u00e9
convertActivityError_msg=IUPL0006E : Cette activit\u00e9 ne peut pas \u00eatre convertie dans le type cible.
saveConvertedActivityError_msg=IUPL0007E : Impossible de sauvegarder l''activit\u00e9 convertie ''{0}''.

# Error Reasons
error_reason=IUPL0004E : Une erreur s'est produite. Cliquez sur OK pour plus d'informations.
unsupportedGuidanceTypeError_reason=Il n''existe aucun type de conseil compatible pour {0}.
invalidLibraryPathError_reason=Chemin de biblioth\u00e8que non valide. Le fichier projet n'a pas pu \u00eatre cr\u00e9\u00e9.
couldNotLockLibrary_reason=Impossible de verrouiller la biblioth\u00e8que.

# Progress Messages
copyingAttachmentsTask_name=Copie des pi\u00e8ces jointes...

# Convert Guidance Dialog
convertGuidanceDialog_title=Convertir le type de conseil
convertGuidanceDialog_text=S\u00e9lectionnez le type de conseil cible.

# Guidance type names for Convert Guidance Dialog - should be refactored into library.ui
checklist_text=Liste de contr\u00f4le
concept_text=Concept
example_text=Exemple
guideline_text=Instructions
estimate_text=Estimation
estimatingMetric_text=Mesure d'estimation
estimationConsiderations_text=Consid\u00e9rations relatives \u00e0 l'estimation
report_text=Rapport
template_text=Canevas
supportingMaterial_text=Document d'accompagnement
toolMentor_text=Guide d'utilisation de l'outil
whitepaper_text=Livre blanc
termDefinition_text=D\u00e9finition de terme
practice_text=Pratique
reusableAsset_text=Ressource r\u00e9utilisable

#activity breakdown info strings
ActivityLayout_primaryTasks_text=Effectue en tant que propri\u00e9taire
ActivityLayout_additionalTasks_text=Effectue en suppl\u00e9ment


# Convert Guidance Error Messages
convertGuidanceError_title=Erreur de conversion du type de conseil

# Load Resources Error Dialog
loadResourcesError_title=Erreur d'ouverture de la biblioth\u00e8que de m\u00e9thodes
loadResourcesError_reason=Certaines ressources de biblioth\u00e8que n'ont pas pu \u00eatre charg\u00e9es.\n\nCliquez sur D\u00e9tails pour r\u00e9viser les erreurs et les r\u00e9soudre avant d'ajouter davantage de modifications \u00e0 la biblioth\u00e8que.

# Role Diagrams
roleDiagramPerforms_text=ex\u00e9cute
roleDiagramResponsibleFor_text=responsable de

DefaultContentValidator_MSG0=El\u00e9ment r\u00e9f\u00e9renc\u00e9 : {0}
DefaultContentValidator_MSG1=Info : {0}
DefaultContentValidator_MSG4=Avertissement : {0}
DefaultContentValidator_MSG7=Erreur : {0}
DefaultContentValidator_MSG10=El\u00e9ment r\u00e9f\u00e9renc\u00e9 {0} manquant
DefaultContentValidator_MSG11=Impossible de trouver d''\u00e9l\u00e9ment pour l''identificateur global unique {0}
DefaultContentValidator_MSG12=Le fichier ''{0}'' r\u00e9f\u00e9rence la ressource manquante ''{1}''
DefaultContentValidator_MSG15=Fichier de ressources ''{0}'' manquant
DefaultContentValidator_MSG17=Connexion \u00e0 l''URL ''{0}'' impossible
DefaultContentValidator_MSG19=Connexion \u00e0 l''URL ''{0}'' impossible : {1}
ImportExportUtil_MSG8=Fichier ''{0}'' introuvable.
ImportExportUtil_MSG9=Impossible de cr\u00e9er le r\u00e9pertoire temporaire ''{0}''.
unknownGuidance_text=Inconnu

CopyAttachmentsToNewLocation_log_noContentPath=CopyAttachmentsToNewLocation.HandleAttachmentsPlugin: aucun chemin de contenu pour {0}
LibraryModificationHelper_cannotUpdate=IUPL0006W : Impossible de mettre \u00e0 jour {0} {1}
warningDlg_title=Avertissement
errorDlg_title=Erreur
errorDlg_saveError=IUPL0005E : Erreur lors de l''enregistrement des modifications dans le fichier ''{0}''

# activity diagram names
activityDiagramName=Diagramme d''activit\u00e9 : {0}
activityDetailDiagramName=Diagramme d\u00e9taill\u00e9 d''activit\u00e9 : {0}
wpDependencyDiagramName=Diagramme de d\u00e9pendance de produit de travail : {0}

################################################################################
# THE FOLLOWING PROPERTIES SHOULD NOT BE TRANSLATED!!!
################################################################################

# Role diagram fonts and layout
roleDiagramFont_name=Arial
roleDiagramFont_name_win32=Arial
roleDiagramFont_size=10
roleDiagramFont_size_win32=10
roleDiagram_xMargin=200
roleDiagram_xSpacing=70
roleDiagram_ySpacing=30

# localize the value based on locale.  for example, 
# for English, the value is ". "
#colon_with_space=: 
# for french, the value is " . ", you need to use a \ to preserve the leading space
#colon_with_space=\ : 
# for chinese, the colon should be double bytes
# Dont trim the spaces after the colon.
colon_with_space=\ : 
