# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 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 do EPF Composer RCP
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Vers\u00e3o: {0}\n\
\n\
(c) Copyright Contribuidores Eclipse e outros 2000, 2011. Todos os Direitos Reservados.\n

# Category
methodCategoryName=M\u00e9todo

# Views
welcomeViewName=Bem-vindo

# Actions
globalActionSet=Conjunto de A\u00e7\u00f5es Globais
newAction=&Novo
newActionTooltip=Novo
openAction=A&brir...
openActionTooltip=Abrir
searchAction=&Procurar...
searchActionTooltip=Procurar
welcomeAction=&Bem-vindo
welcomeActionToolTip=Bem-vindo

# Tooltips
shortcut.overview.tooltip=Retornar para a p\u00e1gina de Vis\u00e3o Geral
shortcut.tutorials.tooltip=Retornar para a p\u00e1gina do Tutorial
shortcut.firststeps.tooltip=Retornar para a p\u00e1gina de Primeiras Etapas
shortcut.webresources.tooltip=Retornar para a p\u00e1gina de Recursos da Web       

#Action Set
actionSet.description = A\u00e7\u00f5es da Barra de Ferramentas do Sistema de Ajuda
actionSet.label = Sistema de Ajuda
searchAction.label = Aj&uda da Procura
searchAction.tooltip = Ajuda da Procura
dynamicHelpAction.label = Aj&uda Din\u00e2mica 
dynamicHelpAction.tooltip = Ajuda Din\u00e2mica

#Activities/Capabilities
activity.general=Importar e Exportar Projetos e Recursos
activity.general.desc=Utilize os recursos padr\u00e3o de Importa\u00e7\u00e3o/Exporta\u00e7\u00e3o de Projetos/Recursos do Eclipse.
activity.team.cvs=Suporte CVS
activity.team.cvs.desc=Utilize o CVS (Concurrent Versions System) para gerar recursos.
activity.team=Equipe de Suporte Principal
activity.team.desc=Compartilhe projetos utilizando sistemas de gerenciamento de configura\u00e7\u00e3o.

activity.cat.general=Geral
activity.cat.general.desc=Utilize os recursos padr\u00e3o do Eclipse.
activity.cat.team=Equipe
activity.cat.team.desc=Utilize sistemas de gerenciamento de configura\u00e7\u00e3o para gerenciar recursos.

PreferencePages.Capabilities = Recursos
PreferencePages.Capabilities.activityName = &Recursos
PreferencePages.Capabilities.categoryName = &Recursos
PreferencePages.Capabilities.activityPromptButton = &Avisar ao ativar recursos
PreferencePages.Capabilities.activityPromptButtonTooltip = Avisar quando um recurso utilizado pela primeira vez exigir ativa\u00e7\u00e3o de recursos
PreferencePages.Capabilities.captionMessage = Recursos permitem ativar ou desativar v\u00e1rios componentes de produto.  Esses recursos s\u00e3o agrupados de acordo com um conjunto de categorias predefinidas.
