#-------------------------------------------------------------------------------
# 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:
#

# 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 importa\u00e7\u00e3o
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 registro 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 usando 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 usando 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 plugin obrigat\u00f3rio {0}
importXMLService_error_missing_plugins=Est\u00e3o faltando plugin(s) obrigat\u00f3rio(s). Verifique detalhes nos arquivos de registro

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 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}

