###############################################################################
# Copyright (c) 2000, 2003 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
### Boot plugin message catalog

ok = OK

### URL
url.badVariant=Unsupported \"platform:\" protocol variation {0}
url.invalidURL=Invalid "platform:" URL {0}
url.createConnection=Unable to create connection {0}
url.noaccess=Unable to access URL as local {0}.

### Platform Configuration
cfig.inUse=\nConfiguration file \"{0}\" is in use by another instance of the platform, \n\
	or there was a failure in deleting the old lock file.  If no other platform instances are running, \n\
	delete file \"{1}\" and try starting the platform again.
cfig.failCreateLock=Failed to create lock for configuration file \"{0}\"
cfig.badUrlArg=Bad -configuration argument \"{0}\"
cfig.unableToLoad.incomplete=Unable to load {0}
cfig.unableToLoad.noURL=Configuration file location not specified
cfig.unableToSave.noURL=Configuration file save location not specified
cfig.unableToSave=Unable to save configuration file \"{0}\"
cfig.badVersion=Unsupported configuration version \"{0}\"
cfg.unableToCreateConfig.ini = Unable to create config.ini

platform.running=The Platform is already running.
platform.mustNotBeRunning=The Platform must not be running.
platform.notRunning=The Platform is not running.

ignore.plugin=Ignoring invalid plug-in location: {0}.
application.notFound=Application not found: {0}.
error.fatal=Fatal Error: Unable to determine platform installation URL {0}.
error.boot=Fatal Error: Unable to locate boot.xml file for executing org.eclipse.core.boot.
error.runtime=Fatal Error: Unable to locate matching org.eclipse.core.runtime plug-in.
error.xerces=Fatal Error: Unable to locate matching org.apache.xerces plug-in.
error.badNL=Bad value: \"{0}\" for NL. Using system default.

InstalledSiteParser.DirectoryDoesNotExist=The directory \"{0}\" does not exist on the file system.
InstalledSiteParser.UnableToCreateURL= Internal Error. Unable to create URL from \"{0}\".
InstalledSiteParser.FileDoesNotExist= The file \"{0}\" does not exist.
InstalledSiteParser.UnableToCreateURLForFile= Unable to create URL from \"{0}\".
InstalledSiteParser.ErrorParsingFile= Unable to parse file \"{0}\".
InstalledSiteParser.ErrorAccessing= Unable to access file \"{0}\".

FeatureParser.IdOrVersionInvalid= Error parsing feature stream. The unique identifier or the version is null or empty: unique identifier=\"{0}\" version=\"{1}\".
