# 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

################################################################################
# BEGIN NO TRANSLATION
################################################################################

# Role diagram fonts and layout
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name=Arial
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_ja=\u30c0\u30a4\u30a2\u30ed\u30b0
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_ko=\ub300\ud654 \uc0c1\uc790
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_zh=\u5bf9\u8bdd\u6846
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_zh_TW=Di\u00e1logo
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32=Arial
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_ja=MS Gothic
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_ko=\uad74\ub9bc\uccb4
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_zh=\u9ed1\u4f53
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_zh_TW=\u7d30\u660e\u9ad4
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_size=10
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_size_win32=10
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagram_xMargin=200
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagram_xSpacing=70
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagram_ySpacing=30

################################################################################
# END NO TRANSLATION
################################################################################

unknown_text=Desconocido

# Error Reasons
emptyLibraryPathError_reason=La biblioteca de m\u00e9todos est\u00e1 vac\u00eda.
missingLibraryFileError_reason=Falta el archivo del modelo de biblioteca de m\u00e9todos.
unresolvedProxyError_reason=La biblioteca de m\u00e9todos seleccionada contiene referencias a elementos sin resolver. Esto suele deberse a archivos XMI que faltan o que est\u00e1n desplazados en la carpeta de biblioteca.\n\nCierre este di\u00e1logo y abra la vista Problemas para identificar las referencias no resueltas. Para no da\u00f1ar la biblioteca, es muy recomendable resolver estas referencias antes de a\u00f1adir m\u00e1s cambios a la biblioteca.

# Warning Messages
configClosureWarning_msg1=IUPL0007W: Hay uno o varios elementos hijo que contienen referencias ausentes
configClosureWarning_msg2=IUPL0008W: Debe seleccionar este elemento para resolver una o varias de las referencias ausentes
configClosureWarning_msg3=IUPL0009W: Este elemento hace referencia a uno o varios elementos de un paquete no seleccionado

ElementError_missing_element=''{0}'' hace referencia al elemento ausente ''{1}''
ElementError_contributor_missing_base=''{0}'' contribuye al elemento base ausente ''{1}''
ElementError_extender_missing_base=''{0}'' extiende el elemento base ausente ''{1}''
ElementError_replacer_missing_base=''{0}'' sustituye el elemento base ausente ''{1}''
ElementError_missing_primary_performer=''{0}'' hace referencia al realizador principal ausente ''{1}''
ElementError_missing_mandatory_input=''{0}'' hace referencia a la entrada obligatoria ausente ''{1}''
ElementError_missing_output=''{0}'' hace referencia a la salida ausente ''{1}''
ElementError_missing_responsible_for_workProduct=''{0}'' hace referencia al responsable ausente del producto del trabajo ''{1}''
ElementError_having_multiple_replacers=''{0}'' tiene varios elementos de sustituci\u00f3n: ''{1}''

# Error Messages
loadResourcesError_msg=IUPL0000E: Se ha cargado la biblioteca de m\u00e9todos, pero se han detectado varios errores.
unsupportedGuidanceTypeError_msg=IUPL0001E: Estas instrucciones no se pueden convertir en otro tipo.
convertGuidanceError_msg=IUPL0002E: Estas instrucciones no se pueden convertir en otro tipo de destino.
saveConvertedGuidanceError_msg=IUPL0003E: Las instrucciones convertidas ''{0}'' no se pueden guardar.

# Convert activity
convertActivityError_title=Convertir error de tipo de actividad
convertActivityError_msg=IUPL0006E: Esta actividad no se puede convertir en otro tipo de destino.
saveConvertedActivityError_msg=IUPL0007E: La actividad convertida ''{0}'' no se puede guardar.

# Error Reasons
error_reason=IUPL0004E: Se ha producido un error. Pulse Aceptar para obtener m\u00e1s informaci\u00f3n.
unsupportedGuidanceTypeError_reason=No hay ning\u00fan tipo de gu\u00eda compatible para {0}.
invalidLibraryPathError_reason=La v\u00eda de acceso de la biblioteca no es v\u00e1lida. No se ha podido crear el archivo .project.
couldNotLockLibrary_reason=No se ha podido bloquear la biblioteca.

# Progress Messages
copyingAttachmentsTask_name=Copiando archivos de datos adjuntos...

# Convert Guidance Dialog
convertGuidanceDialog_title=Convertir tipo de gu\u00eda
convertGuidanceDialog_text=Seleccione el tipo de gu\u00eda de destino.

# Guidance type names for Convert Guidance Dialog
checklist_text=Lista de comprobaci\u00f3n
concept_text=Concepto
example_text=Ejemplo
guideline_text=Directriz
estimate_text=C\u00e1lculo
estimatingMetric_text=C\u00e1lculo de la medida
estimationConsiderations_text=Consideraciones sobre el c\u00e1lculo
report_text=Informe
template_text=Plantilla
supportingMaterial_text=Material de soporte
toolMentor_text=Gu\u00eda de la herramienta
whitepaper_text=Documentaci\u00f3n
termDefinition_text=Definici\u00f3n de t\u00e9rminos
practice_text=Pr\u00e1ctica
reusableAsset_text=Activo reutilizable

#activity breakdown info strings
ActivityLayout_primaryTasks_text=Act\u00faa como propietario
ActivityLayout_additionalTasks_text=Act\u00faa como adicional
ActivityLayout_assistTasks_text=Act\u00faa como ayuda

# Convert Guidance Error Messages
convertGuidanceError_title=Convertir error de tipo de gu\u00eda

# Load Resources Error Dialog
loadResourcesError_title=Se ha producido un error al abrir la biblioteca de m\u00e9todos
loadResourcesError_reason=No se han podido cargar algunos recursos de la biblioteca.\n\nPulse Detalles para revisar los errores y solucionarlos antes de a\u00f1adir m\u00e1s cambios a la biblioteca.

# Role Diagrams
roleDiagramPerforms_text=realiza
roleDiagramResponsibleFor_text=responsable de

DefaultContentValidator_MSG0=Elemento con referencias: {0}
DefaultContentValidator_MSG1=Informaci\u00f3n: {0}
DefaultContentValidator_MSG4=Aviso: {0}
DefaultContentValidator_MSG7=Error: {0}
DefaultContentValidator_MSG10=Elemento con referencias ausente {0}
DefaultContentValidator_MSG11=No se ha podido encontrar el elemento para el GUID {0}
DefaultContentValidator_MSG12=El archivo ''{0}'' hace referencia al recurso ausente ''{1}''
DefaultContentValidator_MSG15=falta el archivo de recursos ''{0}''
DefaultContentValidator_MSG17=No se ha podido conectar al URL ''{0}''
DefaultContentValidator_MSG19=No se ha podido conectar al URL ''{0}'': {1}
ImportExportUtil_MSG8=No se ha podido encontrar el archivo ''{0}''.
ImportExportUtil_MSG9=No se ha podido crear el directorio temporal ''{0}''.
unknownGuidance_text=Desconocido

CopyAttachmentsToNewLocation_log_noContentPath=CopyAttachmentsToNewLocation.HandleAttachmentsPlugin: no hay ninguna v\u00eda de acceso de contenido para {0}
LibraryModificationHelper_cannotUpdate=IUPL0006W: No se puede actualizar {0} {1}
warningDlg_title=Aviso
errorDlg_title=Error
errorDlg_saveError=IUPL0005E: Se ha producido un error al guardar los cambios en el archivo ''{0}''

# activity diagram names
activityDiagramName=Diagrama de la actividad: {0}
activityDetailDiagramName=Diagrama de detalle de la actividad: {0}
wpDependencyDiagramName=Diagrama de dependencia del producto de trabajo: {0}

# localize the value based on locale.  for example, 
# for English, the value is ". "
#colon_with_space=: 
# for French, the value is " . ", you need to use a \ to preserve the leading space
#colon_with_space=\ : 
# for Chinese, the colon should be double bytes
# Don't trim the spaces after the colon.
colon_with_space=: 

oldToolVersion_err_msg=Esta versi\u00f3n de {0} no es compatible con el archivo de biblioteca ''{2}''. Debe actualizar {0} a la versi\u00f3n {1} o superior para poder abrirlo.
toolVersionMismatch_err_msg=Esta versi\u00f3n de {0} no es compatible con el archivo de biblioteca ''{2}''. Debe actualizar {0} a una versi\u00f3n superior para poder abrirlo.
libUpgradeRequired_err_msg=La biblioteca especificada necesita ser actualizada a la nueva estructura de biblioteca. Abra la biblioteca para actualizarla y vuelva a intentarlo.

WorkProductSlot_text=Ranura del producto de trabajo

libraryProblemMonitor=Supervisor de problemas de biblioteca

references_unresolved_base_txt=referencia no resuelta a un conector b\u00e1sico

configFreeProcessView_title=Vista de proceso sin configuraci\u00f3n
systemCreatedCustomCategory_brief=Se trata de una categor\u00eda personalizada creada por el sistema para agrupar los mismos elemntos de tipo.

UndeclaredDep_MarkerTxt0=Dependencia de plug-in no declarada
UndeclaredDep_MarkerTxt1=Dependencia de plug-in no declarada de ''{0}'' a
UndeclaredDep_MarkerTxt2=Elementos de error:

