# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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

# Plug-in
pluginName=UI de Autoria do EPF
providerName=Eclipse.org

# Category
methodCategoryName=M\u00e9todo

# Perspective
authoringPerspectiveName=Autoria
browsingPerspectiveName=Navega\u00e7\u00e3o

# Views
libraryViewName=Biblioteca
configurationViewName=Configura\u00e7\u00e3o
contentViewName=Conte\u00fado
configurationErrorLogViewName=Registro de Erros de Configura\u00e7\u00e3o

# Editors
methodElementEditorName=Editor de Elemento de M\u00e9todo
configurationEditorName=Editor de Configura\u00e7\u00e3o
processEditorName=Editor de Processo
activityDiagramEditorName=Editor de Diagrama de Atividades
activityDetailDiagramEditorName=Editor de Diagrama de Detalhes de Atividades
workProductDepedencyDiagramEditorName=Editor de Diagrama de Depend\u00eancia de Produto de Trabalho

# Wizards
newMethodLibraryWizardName=Biblioteca de M\u00e9todos
newMethodLibraryWizardDescription=Criar nova biblioteca de m\u00e9todos.
newMethodPluginWizardName=Plug-in de M\u00e9todo
newMethodPluginWizardDescription=Criar um novo plug-in de m\u00e9todo.
newConfigurationWizardName=Configura\u00e7\u00e3o de M\u00e9todo
newConfigurationWizardDescription=Criar uma nova configura\u00e7\u00e3o de m\u00e9todo.

# Cheat Sheets
methodAuthoringCheatSheetsName=Folhas de Dicas de Autoria de M\u00e9todo
CheatsheetGetstartedCategoryText=Guia de Introdu\u00e7\u00e3o
CheatsheetReusableContentCategoryText=Criar Conte\u00fado de M\u00e9todo Reutiliz\u00e1vel
CheatsheetWriteContentCategoryText=Gravar Conte\u00fado de M\u00e9todo
CheatsheetProcessesCategoryText=Trabalhar com Processos
CheatsheetNavigateMethodContent=Navegar Conte\u00fado de M\u00e9todo
CheatsheetCreateMethodConfiguration=Criar Sua Pr\u00f3pria Configura\u00e7\u00e3o de M\u00e9todo
CheatsheetCreateMethodPlugin=Criar Seu Pr\u00f3prio Plug-in de M\u00e9todo
CheatsheetAddMethodContent=Incluir Novo Conte\u00fado de M\u00e9todo, como Fun\u00e7\u00f5es, Tarefas, Produtos de Trabalho ou Orienta\u00e7\u00e3o
CheatsheetTailorMethodElements=Adaptar Elementos de M\u00e9todo Existentes (Fun\u00e7\u00f5es, Tarefas, Produtos de Trabalho ou Orienta\u00e7\u00e3o) Utilizando Contribui\u00e7\u00e3o
CheatsheetReplaceMehtodElements=Substituir Elementos de M\u00e9todo Existentes (Fun\u00e7\u00f5es, Tarefas, Produtos de Trabalho ou Orienta\u00e7\u00e3o)
CheatsheetAddMethodRefOrHyperlink=Incluir uma Refer\u00eancia ou Hyperlink (URL) de M\u00e9todo
CheatsheetApplyCapabilityPattern=Aplicar um Padr\u00e3o de Recurso
CheatsheetCreateProcess=Criar um Processo (Padr\u00e3o de Recurso ou Processo de Entrega)

# Action Set
authoringActionSet=Autoria
cheatSheetsActionSet=Folhas de Dicas

# Global Actions
newLibraryAction=&Biblioteca de M\u00e9todos
newLibraryActionTooltip=Criar uma Nova Biblioteca de M\u00e9todos
newPluginAction=&Plug-in de M\u00e9todo
newPluginActionTooltip=Criar um Novo Plug-in de M\u00e9todo
newConfigAction=&Configura\u00e7\u00e3o de M\u00e9todo
newConfigActionTooltip=Criar uma Nova Configura\u00e7\u00e3o de M\u00e9todo
openLibraryAction=&Biblioteca de M\u00e9todos
openLibraryActionTooltip=Abrir uma Biblioteca de M\u00e9todos Existente
openConfigAction=&Configura\u00e7\u00e3o de M\u00e9todo
openConfigActionTooltip=Abrir uma Configura\u00e7\u00e3o de M\u00e9todo Existente
openCheatSheets=Folhas de Di&cas...

# Library View Actions
linkWithEditor=Link com Editor
linkWithEditorTooltip=Link com Editor
showPresentationNames=Mostrar Nomes de Apresenta\u00e7\u00e3o
showPresentationNamesTooltip=Mostrar Nomes de Apresenta\u00e7\u00e3o

# Configuration View Actions
refreshConfig=Atualizar
refreshConfigTooltip=Atualizar Configura\u00e7\u00e3o

# Preference Page
authoringPreferencePage=Autoria
processEditor=Editor de Processo
libraryOptions=Op\u00e7\u00f5es de Biblioteca
startupAndShutdown=Inicializa\u00e7\u00e3o e Encerramento
debug=Depurar
modelingOptions=Op\u00e7\u00f5es de Modelagem
diagramAppearance=Apar\u00eancia do Diagrama
breakdownElementAttributes=Atributos do Elemento de Decomposi\u00e7\u00e3o
libraryViewOptions=Op\u00e7\u00f5es de Visualiza\u00e7\u00e3o da Biblioteca
activityDiagram=Diagrama de Atividades
validation=Valida\u00e7\u00e3o

# Command Handler
selectAll=Selecionar Tudo

# Properties View
_UI_ProcessEditor_menu=Processo
_UI_CreateChild_menu_item=&Novo Filho
_UI_CreateSibling_menu_item=N&ovo Irm\u00e3o
_UI_ShowPropertiesView_menu_item=Mostrar &Visualiza\u00e7\u00e3o de Propriedades
_UI_RefreshViewer_menu_item=Atuali&zar
_UI_Properties_General=Geral
_UI_Properties_Documentation=Documenta\u00e7\u00e3o
_UI_Properties_Guidance=Orienta\u00e7\u00e3o
_UI_Properties_Work_Rollup=Lista de Trabalho
_UI_Properties_Team_Rollup=Lista da Equipe
_UI_Properties_WP_Rollup=Lista de Produto de Trabalho
_UI_Properties_Roles=Fun\u00e7\u00f5es
_UI_Properties_WorkProducts=Produtos de Trabalho
_UI_Properties_Steps=Etapas
_UI_Properties_Teams=Equipes

RichTextMarkerTypeName=Problemas do HTML
ConfigurationMarkerTypeName=Problemas de Configura\u00e7\u00e3o
ExplanationText=Explica\u00e7\u00e3o

ClearAllValidationItems=Limpar todos os itens de valida\u00e7\u00e3o
