# 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 Divis\u00e3o
libraryViewOptions=Op\u00e7\u00f5es de Visualiza\u00e7\u00e3o da Biblioteca
activityDiagram=Diagrama de Atividades

# 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

