#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

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

# Error Messages
loadResourcesError_msg=IUPL0000E: Se ha cargado la biblioteca de m\u00e9todos, pero se han detectado varios errores.
unsupportedGuidanceTypeError_msg=IUPL0001E: Esta gu\u00eda no se puede convertir en otro tipo.
convertGuidanceError_msg=IUPL0002E: Esta gu\u00eda no se puede convertir en otro tipo de destino.
saveConvertedGuidanceError_msg=IUPL0003E: La gu\u00eda convertida ''{0}'' no se puede 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 - should be refactored into library.ui
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


# 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 a la url ''{0}''
DefaultContentValidator_MSG19=No se ha podido conectar a la 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}

################################################################################
# THE FOLLOWING PROPERTIES SHOULD NOT BE TRANSLATED!!!
################################################################################

# Role diagram fonts and layout
roleDiagramFont_name=Arial
roleDiagramFont_name_win32=Arial
roleDiagramFont_size=10
roleDiagramFont_size_win32=10
roleDiagram_xMargin=200
roleDiagram_xSpacing=70
roleDiagram_ySpacing=30

# 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
# Dont trim the spaces after the colon.
colon_with_space=: 
