#-------------------------------------------------------------------------------
# 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.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR

previous_name_null1=N\u00e3o \u00e9 permitido desfazer uma altera\u00e7\u00e3o de nome se o nome anterior for nulo.
err_name_empty=O nome n\u00e3o pode estar vazio. Especifique um nome v\u00e1lido.
moveAction_label=Mover

AbstractDiagram_Select_text=Selecionar
AbstractDiagram_Select_tooltip=Selecionar n\u00f3 ou link
AbstractDiagram_AddNode_title=Incluir N\u00f3
AbstractDiagram_AddNode_err_msg=IXRD0002W: A inclus\u00e3o de um n\u00f3 no diagrama falhou
AbstractDiagram_Link_text=Link
AbstractDiagram_Link_select=Selecionar Link
AbstractDiagram_Link_tooltip=Criar novo Link
ActivityDiagram_StartNode_text=N\u00f3 de In\u00edcio
ActivityDiagram_StartNode_tooltip=Criar Novo N\u00f3 de In\u00edcio
AbstractDiagram_FreeText_text=Texto Livre
AbstractDiagram_FreeText_tooltip=Criar Novo Texto Livre
ActivityDiagram_SyncBar_text=Barra de Sincroniza\u00e7\u00e3o
ActivityDiagram_SyncBar_tooltip=Criar Nova Barra de Sincroniza\u00e7\u00e3o
ActivityDiagram_DecisionNode_text=N\u00f3 de Decis\u00e3o
ActivityDiagram_DecisionNode_tooltip=Criar Novo N\u00f3 de Decis\u00e3o
ActivityDiagram_EndNode_text=N\u00f3 de Extremidade
ActivityDetailDiagram_prefix=Detalhe da Atividade:
ActivityDiagram_EndNode_tooltip=Criar Novo N\u00f3 de Extremidade
ActivityDiagram_Activity_text=Atividade
ActivityDiagram_Activity_tooltip=Criar Nova Atividade
ActivityDiagram_Iteration_text=Itera\u00e7\u00e3o
ActivityDiagram_Iteration_tooltip=Criar Nova Itera\u00e7\u00e3o
ActivityDiagram_Phase_text=Fase
ActivityDiagram_Phase_tooltip=Criar Nova Fase
AbstractDiagram_TaskDescriptor_text=Descritor de Tarefas
AbstractDiagram_RoleDescriptor_text=Descritor de Fun\u00e7\u00f5es
WorkProductDependencyDiagram_prefix=Diagrama de Depend\u00eancia de Produto de Trabalho:
AbstractDiagram_RoleDescriptor_tooltip=Criar Novo Descritor de Fun\u00e7\u00f5es
AbstractDiagram_TaskDescriptor_tooltip=Criar Novo Descritor de Tarefa
ActvitivityDiagram_DeliveryProcess_text=Processo de Entrega
ActvitivityDiagram_CapabilityPattern_text=Padr\u00e3o de Recurso
ActvitivityDiagram_Phase_tex=Fase
ActvitivityDiagram_Iteration_text=Itera\u00e7\u00e3o
ActvitivityDiagram_Activity_text=Atividade
AbstractDiagram_WorkProductDescriptor_text=Descritor de Produtos de Trabalho
AbstractDiagram_WorkProductDescriptor_tooltip=Criar Novo Descritor de Produtos de Trabalho

AbstractDiagramEditor_alignMenu_text=Alinhar
AbstractDiagramEditor_refreshFromBaseActivity_text=Atualizar a partir da Atividade de Base
AbstractDiagramEditor_formatTextBoxActivity_text=Formatar Caixa de Texto...
AbstractDiagramEditor_hAlignAverageAction_text=Horizontalmente para a M\u00e9dia
AbstractDiagramEditor_hAlignFirstSelectedAction_text=Horizontalmente para o Primeiro Selecionado
AbstractDiagramEditor_vAlignAverageAction_text=Verticalmente para a M\u00e9dia
AbstractDiagramEditor_vAlignFirstSelectedAction_text=Verticalmente para o Primeiro Selecionado
AbstractDiagramEditor_Save_text=Salvar
AbstractDiagramEditor_Save_message=Salvando {0}
AbstractDiagramEditor_MoveNode_label=Mover N\u00f3
AbstractDiagramEditorrefreshfrombase=Atualizar a Partir da Base
AbstractDiagram_BendPoint_create=Criar Ponto de Curvatura

ActivityDiagram_openActivityDetailDiagram_text=Abrir Diagrama de Detalhes de Atividades
refreshAction_label=Atualizar
refreshFromBaseCmd_label=Atualizar a Partir da Base
diagram_saveError=IUPD0001W: Ocorreu uma falha ao salvar o diagrama

DeleteDiagram_text=Excluir Diagrama
DeleteDiagram_prompt=Tem certeza de que quer fechar e excluir este diagrama?\nEsta altera\u00e7\u00e3o \u00e9 permanente e n\u00e3o pode ser desfeita.
align_bend_point_text=Alinhar Ponto de Curvatura
ConfigurationEditorInput_configeditor0=Editor de Configura\u00e7\u00e3o
diagram_node_property_value_problem_msg=Erro no valor da propriedade do n\u00f3.
diagram_errorDialog_title_text0=Erro

ActivityDetailDiagramEditor_ResetDiagramLayout_text=Reconfigurar Layout do Diagrama
errorDialog_title=Erro
command_cannotEdit=IUPD0003E: N\u00e3o \u00e9 poss\u00edvel editar o diagrama

AbstractDiagramEditor_ParentEditorClose_title=Editor Pai Fechado
AbstractDiagramEditor_ParentEditorClose_text=O {0} foi fechado. Deseja fechar {1}?
