#-------------------------------------------------------------------------------
# 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=Documenta\u00e7\u00e3o do EPF
providerName=Eclipse.org


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



               
