#-------------------------------------------------------------------------------
# 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=Log 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\u00e9todos
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=Depura\u00e7\u00e3o
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

# 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 do 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

