#-------------------------------------------------------------------------------
# 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

# Error Messages
invalidNameError_msg=El nombre ''{0}'' no es v\u00e1lido. El nombre de elemento de m\u00e9todo no puede contener estos caracteres: \\ / : * ? " < > |
objNotFoundError_msg=No se ha podido encontrar el objeto con el ID ''{0}''
loadLibraryError_msg=Se han producido errores al cargar la biblioteca de m\u00e9todos:
loadLibraryError_details=\ \ l\u00ednea: {0}, columna: {1}, msg: {2}
restoreResourceError_msg=No se ha podido restaurar el recurso ''{0}''
FileManager_fileReadOnly=El archivo ''{0}'' es de s\u00f3lo lectura
ErrMsg_CouldNotDelete=No se ha podido suprimir {0}. {1}
renameError_msg=No se ha podido renombrar ''{0}'' como ''{1}''
backupError_msg=No se podido realizar una copia de seguridad del recurso ''{0}''
marker_err_cannotResolveProxy=No se ha podido resolver el proxy {0}
modifyFileError_msg=No se puede modificar el archivo ''{0}''
loadResourceError_msg=No se ha podido cargar el recurso ''{0}''
loadResourceErrorWithReason_msg=No se ha podido cargar el recurso ''{0}''. Motivo: {1}
invalidLibraryFileError_msg=Archivo de biblioteca de m\u00e9todos no v\u00e1lido:
fileNotFoundError_msg=No se ha podido ubicar ning\u00fan archivo de biblioteca de m\u00e9todos en el espacio de trabajo ''{0}''
normalizeURIError_msg=No se ha podido encontrar el URI normalizado para ''{0}''
moveError_msg=No se ha podido mover ''{0}'' a ''{1}''. El destino ya existe.
modifyReadOnlyFileError_msg=No se puede modificar el archivo de s\u00f3lo lectura: {0}
moveResourceError_msg=El recurso ''{0}'' est\u00e1 implicado en una operaci\u00f3n de permanencia que no se ha confirmado.
modifyFilesError_msg=No se han podido modificar uno o varios archivos
resourceOutOfSynch_msg=El recurso no est\u00e1 sincronizado y se tiene que cargar de nuevo: {0}

# Progress Messages
loadLibraryTask_name=Cargando biblioteca de m\u00e9todos...
moveDataTask_name=Moviendo los datos...
saveLibraryTask_name=Guardando la biblioteca de m\u00e9todos...
loadResourcesTask_name=Cargando todos los recursos en la memoria...
migrateContentDescriptionsTask_name=Migrando las descripciones de contenido del proceso...
fixPresentationNameTask_name=Estableciendo el nombre de presentaci\u00f3n nulo/vac\u00edo de todos los elementos de desglose en su nombre...
UnresolvedProxyMarkerManager_couldNotResolveProxy=No se ha podido resolver el proxy ''{0}''
refreshLibraryFilesTask_name=Renovando archivos de biblioteca en el espacio de trabajo
versionMismatch_oldTool=Los archivos seleccionados no est\u00e1n soportados, actualice a una versi\u00f3n m\u00e1s reciente de {0}. 
