# <copyright>
#------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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
#------------------------------------------------------------------------------
# </copyright>
#
# $Id: plugin_fr.properties,v 1.1 2008/08/25 00:52:05 jtham Exp $

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================
# NLS_MESSAGEFORMAT_VAR

pluginName=Prise en charge de la modification de diagramme EPF
providerName=Eclipse.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Cr\u00e9er nouveau {0} sous la fonction {1}
_UI_CreateChild_description = Cr\u00e9er un nouvel enfant du type {0} pour la fonction {1} du {2} s\u00e9lectionn\u00e9.
_UI_CreateSibling_description = Cr\u00e9er un nouveau soeur/fr\u00e8re de type {0} pour le {2} s\u00e9lectionn\u00e9, dans la fonction {1} de son parent.

_UI_PropertyDescriptor_description = Le {0} du {1}

_UI_Diagram_type = Diagramme
_UI_Link_type = Lien
_UI_LinkedObject_type = Objet li\u00e9
_UI_NamedNode_type = Noeud nomm\u00e9
_UI_Node_type = Noeud
_UI_ActivityDiagram_type = Diagramme d'activit\u00e9
_UI_TypedNode_type = Noeud de type
_UI_WorkProductDependencyDiagram_type = Diagramme de d\u00e9pendance de produit de travail
_UI_WorkProductNode_type = Noeud de produit de travail
_UI_ActivityDetailDiagram_type = Diagramme d\u00e9taill\u00e9 d'activit\u00e9
_UI_NodeContainer_type = Conteneur de noeud
_UI_RoleNode_type = Noeud de r\u00f4le
_UI_RoleTaskComposite_type = Composite de t\u00e2che de r\u00f4le
_UI_TaskNode_type = Noeud de t\u00e2che
_UI_WorkProductDescriptorNode_type = Noeud de descripteur de produit de travail
_UI_WorkBreakdownElementNode_type = Noeud d'\u00e9l\u00e9ment de r\u00e9partition de travail
_UI_WorkProductComposite_type = Composite de produit de travail
_UI_Unknown_type = Objet

_UI_Unknown_datatype= Valeur

_UI_Link_source_feature = Source
_UI_Link_target_feature = Cible
_UI_Link_bendpoints_feature = Points d'infl\u00e9chissement
_UI_Link_sourceEndPoint_feature = Point final source
_UI_Link_targetEndPoint_feature = Point final cible
_UI_LinkedObject_linkedElement_feature = El\u00e9ment li\u00e9
_UI_LinkedObject_object_feature = Objet
_UI_NamedNode_name_feature = Nom
_UI_Node_location_feature = Emplacement
_UI_Node_width_feature = Largeur
_UI_Node_height_feature = Hauteur
_UI_Node_incomingConnections_feature = Connexions entrantes
_UI_Node_outgoingConnections_feature = Connexions sortantes
_UI_Node_readOnly_feature = Lecture seule
_UI_TypedNode_type_feature = Type
_UI_WorkProductNode_type_feature = Type
_UI_NodeContainer_nodes_feature = Noeuds
_UI_WorkProductComposite_type_feature = Type
_UI_Unknown_feature = Non sp\u00e9cifi\u00e9

_UI_Link_name_feature = Nom
_UI_ActivityDetailDiagram_autoLayout_feature = Disposition automatique
_UI_TaskNode_index_feature = Index
_UI_RoleTaskComposite_rowIndex_feature = Index de ligne
