# 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 {1}, {2}. 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.
