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

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

