###############################################################################
# Copyright (c) 2000, 2005 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 API and implementation
###############################################################################
### Common runtime plugin messages

ok = OK

### metadata
meta_couldNotCreate = Error trying to create the platform metadata area: {0}.
meta_instanceDataUnspecified = The instance data location has not been specified yet.
meta_noDataModeSpecified = No instance data can be specified.
meta_notDir = Specified platform location \"{0}\" is not a directory.
meta_readonly = The platform metadata area could not be written: {0}.  By default the platform writes its content\nunder the current working directory when the platform is launched.  Use the -data parameter to\nspecify a different content area for the platform.
meta_pluginProblems = Problems occurred when invoking code from plug-in: \"{0}\".

### parsing/resolve
parse_doubleSeparatorVersion=Plug-in version identifier, \"{0}\", must not contain two consecutive separator characters.
parse_emptyPluginVersion=A plug-in version identifier must be non-empty.
parse_fourElementPluginVersion=Plug-in version identifier, \"{0}\", can contain a maximum of four components.
parse_numericMajorComponent=The major (1st) component of plug-in version identifier, \"{0}\", must be numeric.
parse_numericMinorComponent=The minor (2nd) component of plug-in version identifier, \"{0}\", must be numeric.
parse_numericServiceComponent=The service (3rd) component of plug-in version identifier, \"{0}\", must be numeric.
parse_oneElementPluginVersion=Plug-in version identifier, \"{0}\", must contain at least one component.
parse_postiveMajor=Plug-in version identifier, \"{0}\", must have a positive major (1st) component.
parse_postiveMinor=Plug-in version identifier, \"{0}\", must have a positive minor (2nd) component.
parse_postiveService=Plug-in version identifier, \"{0}\", must have a positive service (3rd) component.
parse_separatorEndVersion=Plug-in version identifier, \"{0}\", must not end with a separator character.
parse_separatorStartVersion=Plug-in version identifier, \"{0}\", must not start with a separator character.

#FileMananger messages
fileManager_cannotLock = Unable to create lock manager.
fileManager_couldNotSave = Could not save file table.
fileManager_updateFailed = File update failed on one or more files.
fileManager_illegalInReadOnlyMode = Cannot perform operation while in read-only mode.
fileManager_notOpen = Manager is not opened.
