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

# 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. Examine 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 plug-in de m\u00e9todo 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 para o 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=O processo ''{0}'' n\u00e3o tem um cont\u00eainer v\u00e1lido. O cont\u00eainer \u00e9 do tipo ''{1}'', que n\u00e3o \u00e9 um pacote de processo
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


