#-------------------------------------------------------------------------------
# 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:
#

# Import XML Wizard
importXMLWizard_title=Importar XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Especificar arquivo de importa\u00e7\u00e3o
selectXMLFilePage_desc=Especifique o arquivo XML que cont\u00e9m o conte\u00fado da biblioteca de m\u00e9todo a ser importado e selecione a opera\u00e7\u00e3o de importa\u00e7\u00e3o apropriada a ser executada.
fileLabel_text=Arquivo XML:
browseButton_text=Procurar...
optionGroup_text=Op\u00e7\u00e3o de mesclagem
optionGroup1_text=Op\u00e7\u00e3o de verifica\u00e7\u00e3o do plug-in de base
overwriteRadioButton_text=Substituir conte\u00fado da biblioteca de m\u00e9todo existente pelo conte\u00fado importado
mergeRadioButton_text=Mesclar conte\u00fado importado na biblioteca de m\u00e9todo existente

# Progress Messages
importingXML_text=Importando o conte\u00fado da biblioteca XML na biblioteca de m\u00e9todo atual...

# Import XML Error Dialog
review_log_files=A opera\u00e7\u00e3o de importa\u00e7\u00e3o foi conclu\u00edda. Reveja os arquivos de log na \npasta ''{0}'' em busca de qualquer erro.
importXMLError_msg=IUPM0000E: A opera\u00e7\u00e3o de importa\u00e7\u00e3o n\u00e3o pode continuar.
importXMLError_reason=IUPM0009E: A biblioteca de m\u00e9todo atual \u00e9 de leitura.\n\nCertifique-se de que ''{0}'' seja grav\u00e1vel ou crie uma nova biblioteca de m\u00e9todo e tente novamente.

# Error Messages
invalidXMLFile_error=O arquivo XML especificado n\u00e3o \u00e9 v\u00e1lido.
versionMismatch_oldData=IUPM0010E: O arquivo XML especificado foi exportado por uma vers\u00e3o anterior ({0}) de {1}. Os arquivos devem ser exportados utilizando a vers\u00e3o atual do {1}.
versionMismatch_oldData_unknown=IUPM0011E: O arquivo XML especificado foi exportado por uma vers\u00e3o anterior de {0}. Os arquivos devem ser exportados utilizando a vers\u00e3o atual do {0}.
versionMismatch_oldTool=IUPM0012E: O arquivo XML especificado foi exportado por uma vers\u00e3o mais recente ({0}) de {1}. Voc\u00ea deve fazer upgrade de {1} para importar o arquivo.  
versionMismatch_oldTool_unknown=IUPM0013E: O arquivo XML especificado n\u00e3o pode ser aberto. Voc\u00ea deve fazer upgrade de {0} para importar o arquivo.  

importXMLService_element_not_handled=Elemento n\u00e3o identificado: {0}
importXMLService_element_without_id=Elemento sem ID: {0}
importXMLService_import_failed=Falha ao importar: {0}
importXMLService_missing_plugin=Falta o plug-in necess\u00e1rio {0}
importXMLService_error_missing_plugins=Falta(m) o(s) plug-in(s) necess\u00e1rio(s). Verifique os arquivos de log para detalhes.

library_error_no_eclass=Erro ao criar ContentCategory: imposs\u00edvel obter EClass para {0}
library_no_package=Imposs\u00edvel encontrar pacote propriet\u00e1rio do objeto {0}
library_error_create_element=Erro ao criar elemento: {0}
library_object_string=objeto {0}, recurso {1}
library_error_set_attribute_2=Erro ao definir atributo: valor de recurso de atributo inv\u00e1lido {0}
library_error_set_attribute=Erro ao definir atributo para objeto {0}, recurso {1} e valor {2}
library_error_set_attribute_3=Sem saber como definir atributo para o objeto {0}, recurso {1} e valor {2}
library_error_set_reference=Erro ao definir refer\u00eancia para recurso {0}: nenhum elemento com o id {1}
library_error_set_reference_2=Erro ao definir refer\u00eancia para objeto {0}, recurso {1} e valor {2}

