#-------------------------------------------------------------------------------
# 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=File path
cannotWriteToFiles=Cannot write to file(s)
readOnlyFiles_title=Read-only file(s)
readOnlyFiles_msg=The files listed in Details are read-only. Make them writable and click on Retry to continue.
elementPath=Element path
promptRemoveReferencesToMissingFiles_msg=The following files are missing. Click OK if you want to remove every reference to the selected files in the library
missingFiles_title=Missing file(s)
loadError=Load error
promptRemoveReferencesToFilesWithLoadErrors_msg=The following file(s) could not be loaded. Click OK if you want to remove every reference to the selected files in the library
filesWithLoadErrors_title=File(s) with load error
migrateXMLLibrary_taskName=Migrating XML imported library
convertToSynFree_taskName=Converting to auto-synchronized library

# Error Messages
libraryAlreadyExistsError_msg=A method library already exists in ''{0}''.