#-------------------------------------------------------------------------------
# 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:
#

# Export XML Wizard
exportXMLWizard_title=Exportar XML

# Select Export Type Wizard Page
selectExportTypePage_desc=Selecione o tipo de conte\u00fado de biblioteca de m\u00e9todo a ser exportado.
exportLibraryRadioButton_text=Exportar a biblioteca de m\u00e9todo inteira
exportPluginsRadioButton_text=Exportar um ou mais plug-ins de m\u00e9todo
exportConfigsRadioButton_text=Exportar uma configura\u00e7\u00e3o de m\u00e9todo

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Especificar arquivo de exporta\u00e7\u00e3o
selectXMLFilePage_desc=Especifique um arquivo XML de destino para armazenar o conte\u00fado exportado da biblioteca de m\u00e9todo.
fileLabel_text=Arquivo XML:
browseButton_text=Procurar...

# Overwrite Confirmation Dialog
overwriteText_msg=''{0}'' j\u00e1 existe.\nDeseja sobrescrev\u00ea-lo?

# Progress Messages
exportingXML_text=Exportar conte\u00fado da biblioteca de m\u00e9todo para o arquivo XML...

# Error Messages
invalidXMLFile_error=O arquivo XML especificado n\u00e3o \u00e9 v\u00e1lido.
exportXMLWizard_error=IUPM0000E: A exporta\u00e7\u00e3o falhou: {0}
exportXMLWizard_reviewLog=Exporta\u00e7\u00e3o conclu\u00edda. Revise os arquivos de log no diret\u00f3rio de exporta\u00e7\u00e3o.
exportXMLService_error=Erro ao exportar biblioteca: {0}
exportXMLService_feature_error=Erro ao definir valor de recurso:: Elemento={0}, recurso={1}
xmlLibrary_error_load_xml=Imposs\u00edvel carregar origem xml ''{0}''
xmlLibrary_no_plugin=Nenhum MethodPlugin para o id {0}
xmlLibrary_no_feature=Imposs\u00edvel obter recurso Xml para {0}_{1}
xmlLibrary_no_class=Imposs\u00edvel obter EClass para {0}
xmlLibrary_error_create_element=Erro ao criar elemento; sem saber como definir o valor do recurso {0}
xmlLibrary_error_set_value=Erro ao criar elemento; n\u00e3o \u00e9 poss\u00edvel definir o valor {0} para o cont\u00eainer {1}
xmlLibrary_invalid_feature_value=Valor de recurso de atributo inv\u00e1lido para o recurso {0}, com o valor {1}
xmlLibrary_error_set_value_2=Erro ao definir atributo; n\u00e3o \u00e9 poss\u00edvel definir valor para recurso={0}, objeto={1}, valor={2}
xmlLibrary_error_set_value_3=Sem saber como definir valor para recurso={0}, objeto={1}, valor={2}
xmlLibrary_error_set_reference=Erro ao definir refer\u00eancia; n\u00e3o \u00e9 poss\u00edvel definir valor para recurso={0}, objeto={1}, valor={2}
xmlLibrary_error_process_wrong_container=processo ''{0}'' n\u00e3o tem um cont\u00eainer v\u00e1lido. O cont\u00eainer \u00e9 do tipo ''{1}'', que n\u00e3o \u00e9 um Processpackage
xmlLibrary_new_id=O elemento {0} recebeu um novo id {1} porque n\u00e3o tem um v\u00e1lido
xmlLibrary_id_not_unique=O Id ''{0}'' do elemento \u00e9 utilizado por mais de um elemento


