#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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: IUPE0200E - IUPE0299E
#

# Import Library Configuration Wizard
importConfigWizard_title=Importar Configura\u00e7\u00e3o de Biblioteca
selectConfigDirWizardPage_title=Especificar diret\u00f3rio de importa\u00e7\u00e3o
selectConfigDirWizardPage_text=Especifique o diret\u00f3rio que cont\u00e9m a configura\u00e7\u00e3o de biblioteca para importa\u00e7\u00e3o.
reviewChangesWizardPage_title=Revisar altera\u00e7\u00f5es da biblioteca
reviewChangesWizardPage_text=Revise as altera\u00e7\u00f5es que ser\u00e3o feitas na biblioteca de m\u00e9todos atual.
selectConfigSpecsWizardPage_title=Selecionar especifica\u00e7\u00f5es de configura\u00e7\u00e3o
selectConfigSpecsWizardPage_text=Selecione uma ou mais especifica\u00e7\u00f5es de configura\u00e7\u00e3o para importa\u00e7\u00e3o.

# Import Method Plug-ins Wizard
importPluginsWizard_title=Importar Plug-ins de M\u00e9todo
selectPluginsDirWizardPage_title=Especificar diret\u00f3rio de importa\u00e7\u00e3o
selectPluginsDirWizardPage_text=Especifique o diret\u00f3rio que cont\u00e9m os plug-ins de m\u00e9todo para importa\u00e7\u00e3o.
selectPluginsWizardPage_title=Selecionar plug-ins de m\u00e9todo
selectPluginsWizardPage_text=Selecione um ou mais plug-ins de m\u00e9todo para importa\u00e7\u00e3o. Se um plug-in selecionado j\u00e1 existir na biblioteca de m\u00e9todos atual, verifique as diferen\u00e7as de vers\u00f5es.
importPluginsWizard_ERR_Import_plugin=Falha ao importar plugin

ConfigurationImportService_MSG0=Validando a configura\u00e7\u00e3o da biblioteca selecionada...
ConfigurationImportService_MSG1=O diret\u00f3rio especificado n\u00e3o cont\u00e9m uma configura\u00e7\u00e3o v\u00e1lida.
ConfigurationImportService_MSG3=Importando configura\u00e7\u00e3o de m\u00e9todo...
ConfigurationImportService_MSG2=Imposs\u00edvel importar a biblioteca aberta atualmente para dentro dela mesma.
ImportConfigurationWizard_MSG1=Importando configura\u00e7\u00e3o de m\u00e9todo...
ImportConfigurationWizard_ERR_Import_configuration=Falha ao importar configura\u00e7\u00e3o

FileModifyChecker_Checkout_failed_title=Falha no registro de sa\u00edda
FileModifyChecker_Checkout_failed_msg=A sa\u00edda de alguns arquivos n\u00e3o foi efetuada; deseja tentar novamente?

ImportConfigReportPage_title=Importando Relat\u00f3rio de Configura\u00e7\u00e3o
ImportPluginWizard_readonly=IUPE0201E: A biblioteca \u00e9 de leitura.
ImportPluginWizard_MSG1=Importando plug-in de m\u00e9todo...
ImportPluginWizard_error=Erro
ImportPluginWizard_warn_existing_plugins=IUPE0200E: Os seguintes plug-ins selecionados j\u00e1 existem e a reimporta\u00e7\u00e3o dos mesmos plug-ins sobrescrever\u00e1 os existentes:\n\n {0} \n\nTem certeza de que deseja continuar?
ImportPluginWizard_confirm_continue=\n\nTem certeza de que deseja continuar?

SelectConfigsToImport_label1=Os seguintes elementos ser\u00e3o importados:
ImportConfigurationWizard_error=Erro
SelectImportConfigurationSource_MSG1=Analisando
SelectConfigSpecsToImportPage_title2=Selecionar especifica\u00e7\u00f5es de configura\u00e7\u00e3o para importa\u00e7\u00e3o
SelectImportPluginSource_not_used=n\u00e3o_utilizado
SelectImportPluginSource_no_path=O diret\u00f3rio especificado n\u00e3o existe.
SelectImportPluginSource_no_dir=Nenhum diret\u00f3rio especificado
SelectPluginsToImport_label_plugins=Plug-ins dispon\u00edveis no diret\u00f3rio de importa\u00e7\u00e3o:
SelectPluginsToImport_label_author=Autor:
SelectPluginsToImport_label_version=Vers\u00e3o:
SelectPluginsToImport_label_desc=Descri\u00e7\u00e3o resumida:
ImportConfigurationWizard_readonly=IUPE0201E: A biblioteca \u00e9 de leitura.
PluginImportingService_MSG0=Validando os plug-ins selecionados...
PluginImportingService_MSG1=O caminho especificado n\u00e3o cont\u00e9m um plug-in de m\u00e9todo v\u00e1lido.
PluginImportingService_MSG3=Importando plug-in de m\u00e9todo...
PluginImportingService_MSG5=N\u00e3o \u00e9 poss\u00edvel importar o plug-in de m\u00e9todo selecionado. Seu plug-in dependente ''{0}'' n\u00e3o foi localizado na biblioteca de m\u00e9todos atual.
PluginImportingService_MSG6=N\u00e3o \u00e9 poss\u00edvel importar o plug-in de m\u00e9todo selecionado. N\u00e3o foi poss\u00edvel localizar um plug-in dependente na biblioteca de m\u00e9todos atual.
DiffReportViewer_content=Conte\u00fado
DiffReportViewer_in_import=Na Importa\u00e7\u00e3o
SelectPluginsToImport_MSG1=Analisando arquivos...
DiffReportLabelProvider_yes=Sim
SelectPluginsToImport_error=Erro
DiffReportViewer_in_lib=Na Biblioteca
DiffReportViewer_status=Status
SelectPluginsToImport_libraryPluginExists=O plug-in selecionado foi localizado na biblioteca atual.
SelectPluginsToImport_libraryPluginNotExists=O plug-in selecionado n\u00e3o foi localizado na biblioteca atual.
SelectConfigSpecsToImportPage_libraryConfigSpecExists=A configura\u00e7\u00e3o foi localizada na biblioteca atual.
SelectConfigSpecsToImportPage_configSpecNoSelection=Nenhuma especifica\u00e7\u00e3o de configura\u00e7\u00e3o selecionada.
SelectConfigSpecsToImportPage_configSpecDataLabel=Configura\u00e7\u00e3o selecionada no diret\u00f3rio de importa\u00e7\u00e3o.
SelectConfigSpecsToImportPage_label_configs=Especifica\u00e7\u00f5es de configura\u00e7\u00e3o dispon\u00edveis no diret\u00f3rio de importa\u00e7\u00e3o:
SelectImportConfigurationSource_not_used=n\u00e3o_utilizado
SelectConfigSpecsToImportPage_label_desc=Descri\u00e7\u00e3o resumida:
SelectImportConfigurationSource_no_path=O caminho especificado n\u00e3o existe.
SelectPluginsToImport_pluginNoSelection=Nenhum plug-in selecionado.
SelectImportConfigurationSource_no_dir=Nenhum diret\u00f3rio especificado
SelectImportConfigurationSource_plugin_readonly=O plug-in {0} \u00e9 de leitura\n
SelectImportConfigurationSource_plugin_locked=IUPE0203E: O plug-in {0} est\u00e1 bloqueado\n
SelectImportConfigurationSource_error_not_updatable=Algum(ns) do(s) plug-in(s) da biblioteca est\u00e3o bloqueados ou s\u00e3o de leitura.\nDesbloqueie os plug-ins e certifique-se de que os arquivos s\u00e3o atualiz\u00e1veis.
SelectPluginsToImport_pluginDataLabel=Plug-in selecionado no diret\u00f3rio de importa\u00e7\u00e3o.
DiffReportViewer_type=Tipo de Conte\u00fado
SelectConfigSpecsToImportPage_libraryConfigSpecNotExists=A configura\u00e7\u00e3o selecionada n\u00e3o foi localizada na biblioteca atual.
versionMismatch_oldData=IUPE0204E: Os arquivos especificados foram exportados por uma vers\u00e3o anterior ({0}) de {1}. Os arquivos devem ser exportados usando a vers\u00e3o atual do {1}.
versionMismatch_oldData_unknown=IUPE0205E: Os arquivos especificados foram exportados por uma vers\u00e3o anterior de {0}. Os arquivos devem ser exportados usando a vers\u00e3o atual do {0}.
versionMismatch_oldTool=IUPE0206E: Os arquivos especificados foram exportados por uma vers\u00e3o mais recente ({0}) de {1}. Voc\u00ea deve fazer upgrade de {1} para importar os arquivos.  
versionMismatch_oldTool_unknown=IUPE0207E: Os arquivos especificados n\u00e3o puderam ser abertos. Voc\u00ea deve fazer upgrade de {0} para importar os arquivos.  
