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

# Export Library Configuration Wizard
exportConfigWizard_title=Exportar configuraci\u00f3n de la biblioteca
selectExportTypePage_title=Seleccionar tipo de exportaci\u00f3n
selectExportTypePage_desc=Seleccione el tipo de configuraci\u00f3n de la biblioteca para exportar.
selectExportTypePage_configLabel_text=Exportar una configuraci\u00f3n de m\u00e9todo y todos sus plug-ins de m\u00e9todo
selectExportTypePage_configSpecsLabel_text=Exportar una o varias especificaciones de la configuraci\u00f3n de m\u00e9todo
selectConfigPage_title=Seleccionar configuraci\u00f3n de m\u00e9todo
selectConfigPage_desc=Seleccione una configuraci\u00f3n de m\u00e9todo para exportar. Todos los plug-ins de m\u00e9todo con referencias de la configuraci\u00f3n seleccionada se incluir\u00e1n en la exportaci\u00f3n.
selectConfigPage_configsLabel_text=Configuraciones del m\u00e9todo:
selectConfigSpecsPage_title=Seleccionar especificaciones de la configuraci\u00f3n
selectConfigSpecsPage_desc=Seleccione una o varias especificaciones de configuraci\u00f3n de m\u00e9todo para exportar.
selectConfigSpecsPage_configsLabel_text=Configuraciones del m\u00e9todo:
checkConfigPage_title=Revisar errores de configuraci\u00f3n
checkConfigPage_desc=Se ha realizado una comprobaci\u00f3n de integridad en la configuraci\u00f3n de m\u00e9todo seleccionada. Revise el informe de errores y realice las acciones correctivas necesarias.
selectDestinationPage_title=Especificar directorio de exportaci\u00f3n
selectDestinationPage_desc=Especifique un directorio de destino para almacenar la configuraci\u00f3n exportada.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Exportar plug-ins de m\u00e9todo
selectPluginsPage_title=Seleccionar plug-ins de m\u00e9todo
selectPluginsPage_desc=Seleccione uno o varios plug-ins de m\u00e9todo para exportar.
selectPluginsPage_pluginsLabel_text=Plug-ins de m\u00e9todo:
reviewPluginsPage_title=Revisar dependencias
reviewPluginsPage_desc=Seleccione cada plug-in de m\u00e9todo para revisar sus dependencias. Pulse Anterior para seleccionar los plug-ins dependientes si es necesario incluirlos en la exportaci\u00f3n.
reviewPluginsPage_pluginsLabel_text=Plug-ins de m\u00e9todo:
reviewPluginsPage_dependentPluginsLabel_text=Plug-ins de m\u00e9todo dependientes:
reviewPluginsPage_associatedConfigsLabel_text=Configuraciones del m\u00e9todo asociadas:
exportPluginSummaryPage_title=Confirmar exportaci\u00f3n
exportPluginSummaryPage_desc=Confirmar los plug-ins de m\u00e9todo que se exportar\u00e1n.
exportPluginSummaryPage_noPlugin_text=No se ha seleccionado ning\u00fan plug-in de m\u00e9todo.
specifyPathPage_title=Especificar directorio de exportaci\u00f3n
specifyPathPage_desc=Especifique un directorio de destino para almacenar los plug-ins de m\u00e9todo exportados.
SavePluginPage_desc=Exporte los plug-ins y las configuraciones seleccionados al directorio de destino especificado.
ExportPluginWizard_title=Error del asistente de exportaci\u00f3n de plug-ins de m\u00e9todo
ExportPluginError_msg=IUPE0000E: Se ha producido un error durante la exportaci\u00f3n

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Exportar configuraci\u00f3n de la biblioteca
exportConfigErrorDialog_msg=IUPE0001E: La operaci\u00f3n de exportaci\u00f3n no puede continuar.

# Progress Messages
analyzingConfigTask_name=Analizando la configuraci\u00f3n de la biblioteca...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Exportando configuraci\u00f3n...
ConfigurationSpecsExportService_MSG1=La exportaci\u00f3n ha concluido.
ExportConfigCheckingPage_summary_1=Comprobando la integridad de la configuraci\u00f3n seleccionada...\n
ExportConfigCheckingPage_summary_2=No se ha seleccionado ninguna configuraci\u00f3n.\n
ExportConfigCheckingPage_summary_3=La configuraci\u00f3n seleccionada no tiene ning\u00fan problema.\n
ExportConfigCheckingPage_summary_4=Hay {0} problemas ({1} errores, {2} avisos, {3} infos) en la configuraci\u00f3n seleccionada. \nPuede abrir el editor de configuraci\u00f3n y arreglar esos problemas. \nO puede omitir esos problemas y continuar.
ExportConfigCheckingPage_checking=Comprobando la configuraci\u00f3n, espere...
ExportConfigSelectConfigPage_title=Escoger configuraci\u00f3n de m\u00e9todo
DestinationCommonPage_label_browse=Examinar...
DestinationCommonPage_label_default_dir=Utilizar directorio predeterminado
ConfigurationExportService_MSG0=Exportando configuraci\u00f3n...
ConfigurationExportService_MSG2=IUPE0002E: La exportaci\u00f3n ha fallado: Se ha producido un error al cargar la biblioteca
ConfigurationExportService_MSG4=IUPE0003E: La exportaci\u00f3n ha fallado: Se ha producido un error al copiar la biblioteca
ConfigurationExportService_MSG1=IUPE0004E: La exportaci\u00f3n ha fallado: Se ha producido un error al cerrar la configuraci\u00f3n de la biblioteca
ConfigurationExportService_MSG9=IUPE0005E: La exportaci\u00f3n ha fallado: Se ha producido un error al guardar la biblioteca
DestinationCommonPage_label_name=Nombre:
DestinationCommonPage_label_dir=Directorio:
ExportPluginWizard_error=Error
DestinationCommonPage_title=T\u00edtulo predeterminado
DestinationCommonPage_desc=Descripci\u00f3n predeterminada:
PluginExportService_MSG0=Exportando plug-ins...
PluginExportService_MSG1=Creando directorio de exportaci\u00f3n...
PluginExportService_MSG2=Copiando archivos...
PluginExportService_MSG3=Generando archivo de recursos y biblioteca...
PluginExportService_MSG4=La exportaci\u00f3n ha concluido.
SaveLibraryPage_title=Exportar plug-in de m\u00e9todo
SavePluginPage_label_name=Nombre de exportaci\u00f3n:
SaveLibraryPage_desc=Exporte los plug-ins de m\u00e9todo seleccionados y las configuraciones asociadas
ExportPluginWizard_MSG1=Analizando la configuraci\u00f3n de la biblioteca...
