# 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

filePath=V\u00eda de acceso de archivo(s)
cannotWriteToFiles=No se puede escribir en el archivo o archivos
readOnlyFiles_title=Archivo(s) solamente de lectura
readOnlyFiles_msg=Los archivos listados en Detalles son solamente de lectura. Permita que se puedan sobrescribir y pulse en Reintentar para continuar.
elementPath=V\u00eda de acceso a elemento
promptRemoveReferencesToMissingFiles_msg=Faltan los archivos siguientes. Pulse Aceptar si desea eliminar cualquier referencia a los archivos seleccionados en la biblioteca
missingFiles_title=Archivos que faltan
loadError=Error de carga
promptRemoveReferencesToFilesWithLoadErrors_msg=No se han podido cargar los archivos siguientes. Pulse Aceptar si desea eliminar cualquier referencia a los archivos seleccionados en la biblioteca
filesWithLoadErrors_title=Archivo(s) con errores de carga
migrateXMLLibrary_taskName=Migrando la biblioteca XML importada
convertToSynFree_taskName=Convirtiendo a biblioteca sincronizada autom\u00e1ticamente

# Error Messages
libraryAlreadyExistsError_msg=Ya existe una biblioteca de m\u00e9todos en ''{0}''.
