#-------------------------------------------------------------------------------
# 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: {1}\n\
Etiqueta da Constru\u00e7\u00e3o: {0}\n\
\n\
(c) Copyright contribuintes do Eclipse e outros 2000, 2008. 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.
