# <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_pt_BR.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=Suporte a Edi\u00e7\u00e3o do Diagrama EPF
providerName=Eclipse.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Criar Novo {0} Sob o Recurso {1}
_UI_CreateChild_description = Criar um novo filho de tipo {0} para o recurso {1} do {2} selecionado.
_UI_CreateSibling_description = Criar um novo irm\u00e3o do tipo {0} para o {2} selecionado, no recurso {1} de seu pai.

_UI_PropertyDescriptor_description = {0} de {1}

_UI_Diagram_type = Diagrama
_UI_Link_type = Link
_UI_LinkedObject_type = Objeto Vinculado
_UI_NamedNode_type = N\u00f3 com Nome
_UI_Node_type = N\u00f3
_UI_ActivityDiagram_type = Diagrama de Atividades
_UI_TypedNode_type = N\u00f3 com Tipo
_UI_WorkProductDependencyDiagram_type = Diagrama de Depend\u00eancia de Produto de Trabalho
_UI_WorkProductNode_type = N\u00f3 do Produto de Trabalho
_UI_ActivityDetailDiagram_type = Diagrama de Detalhes de Atividades
_UI_NodeContainer_type = Cont\u00eainer de N\u00f3s
_UI_RoleNode_type = N\u00f3 da Fun\u00e7\u00e3o
_UI_RoleTaskComposite_type = Composto da Tarefa da Fun\u00e7\u00e3o
_UI_TaskNode_type = N\u00f3 da Tarefa
_UI_WorkProductDescriptorNode_type = N\u00f3 do Descritor de Produto de Trabalho
_UI_WorkBreakdownElementNode_type = N\u00f3 do Elemento de Interrup\u00e7\u00e3o de Trabalho
_UI_WorkProductComposite_type = Composi\u00e7\u00e3o do Produto de Trabalho
_UI_Unknown_type = Objeto

_UI_Unknown_datatype= Valor

_UI_Link_source_feature = Origem
_UI_Link_target_feature = Destino
_UI_Link_bendpoints_feature = Pontos de Curvatura
_UI_Link_sourceEndPoint_feature = Terminal de Origem
_UI_Link_targetEndPoint_feature = Terminal de Destino
_UI_LinkedObject_linkedElement_feature = Elemento de Vincula\u00e7\u00e3o
_UI_LinkedObject_object_feature = Objeto
_UI_NamedNode_name_feature = Nome
_UI_Node_location_feature = Local
_UI_Node_width_feature = Largura
_UI_Node_height_feature = Altura
_UI_Node_incomingConnections_feature = Conex\u00f5es de Entrada
_UI_Node_outgoingConnections_feature = Conex\u00f5es de Sa\u00edda
_UI_Node_readOnly_feature = Somente Leitura
_UI_TypedNode_type_feature = Tipo
_UI_WorkProductNode_type_feature = Tipo
_UI_NodeContainer_nodes_feature = N\u00f3s
_UI_WorkProductComposite_type_feature = Tipo
_UI_Unknown_feature = N\u00e3o Especificado

_UI_Link_name_feature = Nome
_UI_ActivityDetailDiagram_autoLayout_feature = Layout Autom\u00e1tico
_UI_TaskNode_index_feature = \u00cdndice
_UI_RoleTaskComposite_rowIndex_feature = \u00cdndice da Coluna
