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

# Import XML Wizard
importXMLWizard_title=Importar XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Especificar archivo de importaci\u00f3n
selectXMLFilePage_desc=Especifique el archivo XML en el que se encuentra el contenido de la biblioteca de m\u00e9todos y seleccione la operaci\u00f3n de importaci\u00f3n adecuada que se debe realizar.
fileLabel_text=Archivo XML:
browseButton_text=Examinar...
optionGroup_text=Opciones de fusi\u00f3n
optionGroup1_text=Comprobar opci\u00f3n de conector base
overwriteRadioButton_text=Sobreescribir el contenido de la biblioteca de m\u00e9todos existente con el contenido importado
mergeRadioButton_text=Fusionar el contenido importado en la biblioteca de m\u00e9todos existente
mergeRadioButton2_text=Fusionar el contenido importado en la biblioteca de m\u00e9todos existente (fusi\u00f3n a nivel de elemento)

# Progress Messages
importingXML_text=Importando contenido de la biblioteca XML a la biblioteca de m\u00e9todos actual...

# Import XML Error Dialog
review_log_files=La operaci\u00f3n de importaci\u00f3n se ha completado. Revise los archivos de registro de\nla carpeta ''{0}'' para ver si hay errores.
importXMLError_msg=IUPM0000E: La operaci\u00f3n de importaci\u00f3n no puede continuar.
importXMLError_reason=IUPM0009E: La biblioteca de m\u00e9todos actual es de s\u00f3lo lectura.\n\nAseg\u00farese de que ''{0}'' es grabable o cree una biblioteca de m\u00e9todos nueva y vuelva a intentarlo.

# Error Messages
invalidXMLFile_error=El archivo XML especificado no es v\u00e1lido.
versionMismatch_oldData=IUPM0010E: Una versi\u00f3n anterior {0}) de {1} ha exportado el archivo XML especificado. Los archivos se deben exportar con la versi\u00f3n actual de {1}.
versionMismatch_oldData_unknown=IUPM0011E: Una versi\u00f3n anterior de {0} ha exportado el archivo XML especificado. Los archivos se deben exportar con la versi\u00f3n actual de {0}.
versionMismatch_oldTool=IUPM0012E: Una versi\u00f3n m\u00e1s reciente ({0}) de {1} ha exportado el archivo XML especificado. Debe actualizar {1} para importar el archivo.  
versionMismatch_oldTool_unknown=IUPM0013E: No se puede abrir el archivo XML especificado. Debe actualizar {0} para importar el archivo.  

importXMLService_element_not_handled=Elemento no gestionado: {0}
importXMLService_element_without_id=Elemento sin ID: {0}
importXMLService_import_failed=La importaci\u00f3n ha fallado: {0}
importXMLService_missing_plugin=Falta el conector necesario {0}
importXMLService_error_missing_plugins=Falta(n) conector(es) necesario(s). Consulte los archivos de registro para obtener informaci\u00f3n detallada.

library_error_no_eclass=Error al crear ContentCategory: No se ha podido obtener EClass para {0}
library_no_package=No se ha podido encontrar el paquete de propiedad del objeto {0}
library_error_create_element=Error al crear el elemento: {0}
library_object_string=objeto {0}, caracter\u00edstica {1}
library_error_set_attribute_2=Error al establecer el atributo: Valor de caracter\u00edstica de atributo no v\u00e1lida {0}
library_error_set_attribute=Error al establecer el atributo del objeto {0}, caracter\u00edstica {1} y valor {2}
library_error_set_attribute_3=No se sabe c\u00f3mo establecer el atributo del objeto {0}, caracter\u00edstica {1} y valor {2}
library_error_set_reference=Error al establecer referencia para la caracter\u00edstica {0}: no hay ning\u00fan elemento con el ID {1}
library_error_set_reference_2=Error al establecer referencia para el objeto {0}, caracter\u00edstica {1} y valor {2}

