# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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=Seleccione el tipo de contenido de la biblioteca de m\u00e9todos para exportar.
exportLibraryRadioButton_text=Exportar la biblioteca de m\u00e9todos entera
exportPluginsRadioButton_text=Exportar uno o m\u00e1s conectores de m\u00e9todo
exportConfigsRadioButton_text=Exportar una configuraci\u00f3n de m\u00e9todo

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Especificar archivo de exportaci\u00f3n
selectXMLFilePage_desc=Especifique un archivo XML de destino para almacenar el contenido de la biblioteca de m\u00e9todos exportada.
fileLabel_text=Archivo XML:
browseButton_text=Examinar...

# Overwrite Confirmation Dialog
overwriteText_msg=''{0}'' ya existe.\n\u00bfDesea sobrescribirlo?

# Progress Messages
exportingXML_text=Exportando contenido de biblioteca de m\u00e9todos a archivo XML...

# Error Messages
invalidXMLFile_error=El archivo XML especificado no es v\u00e1lido.
exportXMLWizard_error=IUPM0000E: La exportaci\u00f3n ha fallado: {0}
exportXMLWizard_reviewLog=La exportaci\u00f3n ha concluido. Revise los archivos de registro bajo el directorio de exportaci\u00f3n.
exportXMLService_error=Error al exportar la biblioteca: {0}
exportXMLService_feature_error=Error al establecer el valor de la caracter\u00edstica: Elemento={0}, caracter\u00edstica={1}
xmlLibrary_error_load_xml=No se ha podido cargar el archivo origen XML ''{0}''
xmlLibrary_no_plugin=No hay ning\u00fan conector de m\u00e9todo para el ID {0}
xmlLibrary_no_feature=No se ha podido obtener la caracter\u00edstica XML para {0}_{1}
xmlLibrary_no_class=No se ha podido obtener EClass para {0}
xmlLibrary_error_create_element=Error al crear el elemento, no se sabe c\u00f3mo establecer el valor para la caracter\u00edstica {0}
xmlLibrary_error_set_value=Error al crear elemento, no se puede establecer el valor {0} en el contenedor {1}
xmlLibrary_invalid_feature_value=Valor de caracter\u00edstica de atributo no v\u00e1lido para la caracter\u00edstica {0}, con el valor {1}
xmlLibrary_error_set_value_2=Error al establecer atributo, no se puede establecer el valor para la caracter\u00edstica={0}, objeto={1}, valor={2}
xmlLibrary_error_set_value_3=No se sabe c\u00f3mo establecer el valor para la caracter\u00edstica={0}, objeto={1}, valor={2}
xmlLibrary_error_set_reference=Error al establecer referencia, no se puede establecer el valor para la caracter\u00edstica={0}, objeto={1}, valor={2}
xmlLibrary_error_process_wrong_container=El proceso ''{0}'' no tiene un contenedor v\u00e1lido. El contenedor es del tipo ''{1}'', que no es un paquete de proceso.
xmlLibrary_new_id=El elemento {0} se ha asignado con un ID nuevo {1} porque no tiene uno v\u00e1lido
xmlLibrary_id_not_unique=M\u00e1s de un elemento utiliza el ID de elemento ''{0}''

export_config_to_temp_location=Exportar configuraci\u00f3n a una ubicaci\u00f3n temporal
open_lib_from_temp_exported_location=Abrir biblioteca desde la ubicaci\u00f3n temporal exportada


