# <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_es.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=Soporte de edici\u00f3n de diagramas de EPF
providerName=Eclipse.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Cree {0} nuevo en la caracter\u00edstica {1}
_UI_CreateChild_description = Cree un hijo nuevo de tipo {0} para la caracter\u00edstica {1} del {2} seleccionado.
_UI_CreateSibling_description = Cree un igual nuevo de tipo {0} para el {2} seleccionado, en la caracter\u00edstica {1} del padre.

_UI_PropertyDescriptor_description = El {0} del {1}

_UI_Diagram_type = Diagrama
_UI_Link_type = Enlace
_UI_LinkedObject_type = Objeto enlazado
_UI_NamedNode_type = Nodo nombrado
_UI_Node_type = Nodo
_UI_ActivityDiagram_type = Diagrama de la actividad
_UI_TypedNode_type = Nodo escrito
_UI_WorkProductDependencyDiagram_type = Diagrama de dependencia del producto de trabajo
_UI_WorkProductNode_type = Nodo de producto de trabajo
_UI_ActivityDetailDiagram_type = Diagrama de detalles de la actividad
_UI_NodeContainer_type = Contenedor de nodos
_UI_RoleNode_type = Nodo de rol
_UI_RoleTaskComposite_type = Composici\u00f3n de tareas de rol
_UI_TaskNode_type = Nodo de tarea
_UI_WorkProductDescriptorNode_type = Nodo de descriptor de productos de trabajo
_UI_WorkBreakdownElementNode_type = Nodo de elemento de desglose de trabajo
_UI_WorkProductComposite_type = Composici\u00f3n de producto de trabajo
_UI_Unknown_type = Objeto

_UI_Unknown_datatype= Valor

_UI_Link_source_feature = Origen
_UI_Link_target_feature = Destino
_UI_Link_bendpoints_feature = Puntos de inflexi\u00f3n
_UI_Link_sourceEndPoint_feature = Punto final de origen
_UI_Link_targetEndPoint_feature = Punto final de destino
_UI_LinkedObject_linkedElement_feature = Elemento enlazado
_UI_LinkedObject_object_feature = Objeto
_UI_NamedNode_name_feature = Nombre
_UI_Node_location_feature = Ubicaci\u00f3n
_UI_Node_width_feature = Ancho
_UI_Node_height_feature = Altura
_UI_Node_incomingConnections_feature = Conexiones de entrada
_UI_Node_outgoingConnections_feature = Conexiones de salida
_UI_Node_readOnly_feature = S\u00f3lo lectura
_UI_TypedNode_type_feature = Tipo
_UI_WorkProductNode_type_feature = Tipo
_UI_NodeContainer_nodes_feature = Nodos
_UI_WorkProductComposite_type_feature = Tipo
_UI_Unknown_feature = Sin especificar

_UI_Link_name_feature = Nombre
_UI_ActivityDetailDiagram_autoLayout_feature = Dise\u00f1o autom\u00e1tico
_UI_TaskNode_index_feature = \u00cdndice
_UI_RoleTaskComposite_rowIndex_feature = \u00cdndice de filas
