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

# Progress Messages
publishingConfigurationTask_name=Publicando la configuraci\u00f3n...
initializingDirTask_name=Inicializando el directorio de destino...
copyingFilesTask_name=Copiando archivos...
generatingBookmarksTask_name=Generando marcadores...
generatingBookmarkTask_name=Generando el marcador ''{0}''...
generatingBookmarkIndexTask_name=Generando el \u00edndice de marcadores...
publishingLinkedElementTask_name=Publicando elementos de m\u00e9todo: {0} publicados, {1} restantes
publishingElementTask_name=Publicando el elemento de m\u00e9todo: {0}:{1}
generatingGlossaryTask_name=Generando glosario...
generatingSearchIndexTask_name=Generando \u00edndice de b\u00fasqueda...
generatingWARFileTask_name=Generando archivo WAR...
buildingProcessClosureTask_name=Construyendo cierre del proceso...
buildingElementClosureTask_name=Construyendo el cierre de elemento para ''{0}''...
loadLibraryTask_name=Cargando el contenido de la biblioteca...

# Error Messages logged in the Publishing Report
publishElementError_msg=IUPP0000E: Se ha producido un error al publicar el elemento {0}
serverError_msg=IUPP0001E: El servidor no ha devuelto ning\u00fan dato.
invalidHttpResponseError_msg=IUPP0002E: Respuesta no v\u00e1lida de http://{0}:{1}:{2}

# Warning Messages logged in the Publishing Report
invalidElementWarning_msg=IUPP0003W: El elemento no se ha publicado porque no es un elemento v\u00e1lido de la configuraci\u00f3n.
invalidMethodElementWarning_msg=IUPP0004W: El elemento no se ha publicado porque no es un elemento de m\u00e9todo: {0}
copyFileWarning_msg=IUPP0005W: No se ha podido copiar el archivo de ''{0}'' en ''{1}''.
missingIconFileWarning_msg=IUPP0006W: El archivo de iconos de nodo ''{0}'' no existe.
missingIconNameWarning_msg=IUPP0007W: No se ha podido recuperar el nombre del icono de nodo.
externalUrl_msg={0} milisegundos de referencia a URL externa: {1}
discaredCategoryWarning_msg=Elemento de categor\u00eda de contenido vac\u00edo no publicado.

# Error Details
createSearchIndexError_msg=IUPP0008E: No se ha creado el archivo de \u00edndices de b\u00fasqueda.

# Process Tree Nodes
referenceWorkflowsNode_text=Flujos de trabajo de referencia
taskNode_text=Tareas
primarilyPerformsNode_text=Principalmente realiza
additionallyPerformsNode_text=Adicionalmente realiza
performingRolesNode_text=Roles de realizaci\u00f3n
inputWorkProductsNode_text=Productos de trabajo de entrada
outputWorkProductsNode_text=Productos de trabajo de salida
responsibleForNode_text=Responsable de
modifiesNode_text=Modifica
responsibleRoleNode_text=Rol responsable
containingWorkProductNode_text=Producto de trabajo contenedor
containedWorkProductsNode_text=Productos de trabajo contenidos
guidanceNode_text=Instrucciones
inputToNode_text=Entrada a
outputFromNode_text=Salida de

# HTML Title for Index Page
indexLabel_text=\u00cdndice
