#-------------------------------------------------------------------------------
# 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
#
# Message ID Range: IUPE0000E - IUPE0099E
#

# Export Library Configuration Wizard
exportConfigWizard_title=Exportar Configura\u00e7\u00e3o de Biblioteca
selectExportTypePage_title=Selecionar tipo de exporta\u00e7\u00e3o
selectExportTypePage_desc=Selecione o tipo de configura\u00e7\u00e3o de biblioteca a ser exportada.
selectExportTypePage_configLabel_text=Exportar uma configura\u00e7\u00e3o de m\u00e9todo e todos os seus plug-ins de m\u00e9todo
selectExportTypePage_configSpecsLabel_text=Exportar uma ou mais especifica\u00e7\u00f5es de configura\u00e7\u00e3o de m\u00e9todo
selectConfigPage_title=Selecionar configura\u00e7\u00e3o de m\u00e9todo
selectConfigPage_desc=Selecione uma configura\u00e7\u00e3o de m\u00e9todo para exportar. Todos os plug-ins de m\u00e9todo referenciados na configura\u00e7\u00e3o selecionada ser\u00e3o inclu\u00eddos na exporta\u00e7\u00e3o.
selectConfigPage_configsLabel_text=Configura\u00e7\u00f5es de m\u00e9todo:
selectConfigSpecsPage_title=Selecionar especifica\u00e7\u00f5es de configura\u00e7\u00e3o
selectConfigSpecsPage_desc=Selecione uma ou mais especifica\u00e7\u00f5es de configura\u00e7\u00e3o de m\u00e9todo para exporta\u00e7\u00e3o.
selectConfigSpecsPage_configsLabel_text=Configura\u00e7\u00f5es de m\u00e9todo:
checkConfigPage_title=Revisar erros de configura\u00e7\u00e3o
checkConfigPage_desc=Uma verifica\u00e7\u00e3o de integridade foi executada na configura\u00e7\u00e3o de m\u00e9todo selecionada. Revise o relat\u00f3rio de erros e execute as a\u00e7\u00f5es corretivas necess\u00e1rias.
selectDestinationPage_title=Especificar diret\u00f3rio de exporta\u00e7\u00e3o
selectDestinationPage_desc=Especifique um diret\u00f3rio de destino para armazenar a configura\u00e7\u00e3o exportada.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Exportar Plug-ins de M\u00e9todo
selectPluginsPage_title=Selecionar plug-ins de m\u00e9todo
selectPluginsPage_desc=Selecione um ou mais plug-ins de m\u00e9todo para exporta\u00e7\u00e3o.
selectPluginsPage_pluginsLabel_text=Plug-ins de m\u00e9todo:
reviewPluginsPage_title=Revisar depend\u00eancias
reviewPluginsPage_desc=Selecione cada plug-in de m\u00e9todo para revisar suas depend\u00eancias. Clique em Voltar para selecionar os plug-ins dependentes se eles precisarem ser inclu\u00eddos na exporta\u00e7\u00e3o.
reviewPluginsPage_pluginsLabel_text=Plug-ins de M\u00e9todo:
reviewPluginsPage_dependentPluginsLabel_text=Plug-ins de m\u00e9todo dependentes:
reviewPluginsPage_associatedConfigsLabel_text=Configura\u00e7\u00f5es de m\u00e9todo associadas:
exportPluginSummaryPage_title=Confirmar exporta\u00e7\u00e3o
exportPluginSummaryPage_desc=Confirme os plug-ins de m\u00e9todo que ser\u00e3o exportados.
exportPluginSummaryPage_noPlugin_text=Nenhum plug-in de m\u00e9todo foi selecionado.
specifyPathPage_title=Especificar diret\u00f3rio de exporta\u00e7\u00e3o
specifyPathPage_desc=Especifique um diret\u00f3rio de destino para armazenar os plug-ins de m\u00e9todo exportados.
SavePluginPage_desc=Exporte os plug-ins e as configura\u00e7\u00f5es selecionados para o diret\u00f3rio de destino especificado.
ExportPluginWizard_title=Erro do Assistente de Exporta\u00e7\u00e3o de Plug-in de M\u00e9todo
ExportPluginError_msg=IUPE0000E: Erro encontrado na exporta\u00e7\u00e3o

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Exportar Configura\u00e7\u00e3o de Biblioteca
exportConfigErrorDialog_msg=IUPE0001E: N\u00e3o \u00e9 poss\u00edvel prosseguir a opera\u00e7\u00e3o de exporta\u00e7\u00e3o.

# Progress Messages
analyzingConfigTask_name=Analisando a configura\u00e7\u00e3o da biblioteca...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Exportando configura\u00e7\u00e3o...
ConfigurationSpecsExportService_MSG1=Exporta\u00e7\u00e3o conclu\u00edda.
ExportConfigCheckingPage_summary_1=Verificando a integridade da configura\u00e7\u00e3o selecionada...\n
ExportConfigCheckingPage_summary_2=Nenhuma configura\u00e7\u00e3o selecionada.\n
ExportConfigCheckingPage_summary_3=N\u00e3o existe nenhum problema na configura\u00e7\u00e3o selecionada.\n
ExportConfigCheckingPage_summary_4=H\u00e1 {0} problemas ({1} erros, {2} avisos, {3} informa\u00e7\u00f5es) na configura\u00e7\u00e3o selecionada. \nAbra o editor de configura\u00e7\u00e3o e corrija esses problemas. \nOu opte por ignorar esses problemas e continuar.
ExportConfigCheckingPage_checking=Verificando a configura\u00e7\u00e3o, aguarde...
ExportConfigSelectConfigPage_title=Escolher Configura\u00e7\u00e3o de M\u00e9todo
DestinationCommonPage_label_browse=Procurar...
DestinationCommonPage_label_default_dir=Utilizar diret\u00f3rio padr\u00e3o
ConfigurationExportService_MSG0=Exportando configura\u00e7\u00e3o...
ConfigurationExportService_MSG2=IUPE0002E: Falha na exporta\u00e7\u00e3o: Erro ao carregar biblioteca
ConfigurationExportService_MSG4=IUPE0003E: Falha na exporta\u00e7\u00e3o: Erro ao copiar biblioteca
ConfigurationExportService_MSG1=IUPE0004E: Falha na exporta\u00e7\u00e3o: Erro ao fazer o fechamento da configura\u00e7\u00e3o da biblioteca
ConfigurationExportService_MSG9=IUPE0005E: Falha na exporta\u00e7\u00e3o: Erro ao salvar biblioteca
DestinationCommonPage_label_name=Nome:
DestinationCommonPage_label_dir=Diret\u00f3rio:
ExportPluginWizard_error=Erro
DestinationCommonPage_title=T\u00edtulo Padr\u00e3o
DestinationCommonPage_desc=Descri\u00e7\u00e3o Padr\u00e3o:
PluginExportService_MSG0=Exportando plug-ins...
PluginExportService_MSG1=Criando diret\u00f3rio de exporta\u00e7\u00e3o...
PluginExportService_MSG2=Copiando arquivos...
PluginExportService_MSG3=Gerando biblioteca e arquivo de recursos...
PluginExportService_MSG4=Exporta\u00e7\u00e3o conclu\u00edda.
SaveLibraryPage_title=Exportar Plug-in de M\u00e9todo
SavePluginPage_label_name=Nome da exporta\u00e7\u00e3o:
SaveLibraryPage_desc=Exporte os plug-ins de m\u00e9todo selecionados e as configura\u00e7\u00f5es associadas
ExportPluginWizard_MSG1=Analisando a configura\u00e7\u00e3o da biblioteca...
