###############################################################################
# Copyright (c) 2003, 2018 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

#External Messages for EN locale
BUNDLE_CONTEXT_INVALID_EXCEPTION=BundleContext is no longer valid
BUNDLE_ACTIVATOR_EXCEPTION=Exception in {0}.{1}() of bundle {2}.
BUNDLE_SYSTEMBUNDLE_UNINSTALL_EXCEPTION=The System Bundle cannot be uninstalled
MANIFEST_INVALID_SPACE=The manifest line \"{0}\" has an invalid leading space '' '' character.
MANIFEST_INVALID_LINE_NOCOLON=The manifest line \"{0}\" is invalid; it has no colon '':'' character after the header key.
MANIFEST_INVALID_HEADER_EXCEPTION=Invalid manifest header {0}: \"{1}\"
MANIFEST_IOEXCEPTION=An error occurred while reading the manifest file.
SERVICE_FACTORY_EXCEPTION=Exception in {0}.{1}()
SERVICE_FACTORY_RECURSION=Recursive ServiceFactory call in {0}.{1}()
SERVICE_NOT_INSTANCEOF_CLASS_EXCEPTION=The service object is not an instance of the service class {0}
SERVICE_FACTORY_NOT_INSTANCEOF_CLASS_EXCEPTION={0}.getService() returned a service object of type {1} that is not an instance of the service class {2}
SERVICE_OBJECT_NULL_EXCEPTION={0}.getService() returned a null service object
SERVICE_ARGUMENT_NULL_EXCEPTION=The service parameter is null
SERVICE_OBJECTS_UNGET_ARGUMENT_EXCEPTION=The service parameter was not provided by this object
SERVICE_ALREADY_UNREGISTERED_EXCEPTION=The service has been unregistered
SERVICE_EMPTY_CLASS_LIST_EXCEPTION=The array of service names is empty
SERVICE_USE_OVERFLOW=The use count for the service overflowed.
HEADER_DUPLICATE_KEY_EXCEPTION=The key \"{0}\" already exists in another case variation
FILTER_MISSING_LEFTPAREN=Missing ''('' at \"{0}\"
FILTER_MISSING_RIGHTPAREN=Missing '')'' at \"{0}\"
FILTER_TRAILING_CHARACTERS=Extraneous trailing characters at \"{0}\"
FILTER_TERMINATED_ABRUBTLY=Filter ended abruptly
FILTER_INVALID_OPERATOR=Invalid operator at \"{0}\"
FILTER_MISSING_ATTR=Missing attr at \"{0}\"
FILTER_MISSING_VALUE=Missing value at \"{0}\"
FILTER_INVALID_VALUE=Invalid value at \"{0}\"

CANNOT_SET_CONTEXTFINDER=The context finder has not been installed.

URL_HANDLER_INCORRECT_TYPE=The service property "{0}" is not the correct type for the service "{1}" registered by the bundle "{2}"

HEADER_PACKAGE_DUPLICATES=Cannot import a package more than once \"{0}\"
HEADER_PACKAGE_JAVA=Cannot specify java.* packages in Export headers \"{0}\"
HEADER_VERSION_ERROR=The attributes \"{0}\" and \"{1}\" must match
HEADER_EXPORT_ATTR_ERROR=Specifying \"{0}\" in the \"{1}\" header is not permitted
HEADER_DIRECTIVE_DUPLICATES=Duplicate directives are not permitted \"{0}\"
HEADER_ATTRIBUTE_DUPLICATES=Duplicate attributes are not permitted \"{0}\"
HEADER_EXTENSION_ERROR=Extension bundle is not a fragment to the system bundle \"{0}\"

#EclipseStarter messages
ECLIPSE_STARTUP_BUNDLE_NOT_FOUND=Bundle {0} not found.
ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED=Bundle {0} was not resolved.
ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_ACTIVE=Bundle {0} is not active.
ECLIPSE_STARTUP_ERROR_NO_APPLICATION=Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
#Don't use double quotes in the ECLIPSE_STARTUP_ERROR_CHECK_LOG. (See bug 86085) 
ECLIPSE_STARTUP_ERROR_CHECK_LOG=An error has occurred. See the log file\n{0}.
ECLIPSE_STARTUP_ALREADY_RUNNING=Platform already running
ECLIPSE_STARTUP_NOT_RUNNING=Platform not running
ECLIPSE_STARTUP_STARTUP_ERROR=Startup error
ECLIPSE_STARTUP_APP_ERROR=Application error
ECLIPSE_STARTUP_SHUTDOWN_ERROR=Shutdown error
ECLIPSE_STARTUP_FAILED_INSTALL=Error installing bundle: {0}
ECLIPSE_STARTUP_FAILED_UNINSTALL=Error uninstalling bundle: {0}
ECLIPSE_STARTUP_FAILED_START=Error starting bundle: {0}
ECLIPSE_STARTUP_PROPS_NOT_SET=Cannot start without the following system properties set: {0}

#Classloader messages
ECLIPSE_CLASSLOADER_CONCURRENT_STARTUP=While loading class "{1}", thread "{0}" timed out waiting ({4}ms) for thread "{2}" to finish starting bundle "{3}". To avoid deadlock, thread "{0}" is proceeding but "{1}" may not be fully initialized.
ECLIPSE_CLASSLOADER_ACTIVATION=An error occurred while automatically activating bundle {0} ({1}).

#Location message
ECLIPSE_CANNOT_CHANGE_LOCATION = Cannot change the location once it is set.

#NL Problem
error_badNL=Bad value: \"{0}\" for NL. Using system default.
error_badNL_language=Bad value: \"{0}\" for NL. Only language part will be used to create the Locale.
error_badNL_language_country=Bad value: \"{0}\" for NL. Only language and country part will be used to create the Locale.

#FileMananger messages
fileManager_cannotLock = Unable to create lock manager.
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.

#Location messages
location_cannotLockNIO = An error occurred while locking file \"{0}\": \"{1}\". A common reason is that the file system or Runtime Environment does not support file locking for that location. Please choose a different location, or disable file locking by passing {2} as a VM argument.
location_cannotLock = An error occurred while locking file \"{0}\".
location_folderReadOnly = The folder \"{0}\" is read-only.
location_notSet = The location has not been set.
location_notFileProtocol = Unable to lock the location.  The set location is not a file URL: {0}
location_noLockFile = The lock file has not been set.

ECLIPSE_PLUGIN_EXTRACTION_PROBLEM = The URL \"{0}\" could not be extracted probably due to insufficient permissions or insufficient disk space.

ADAPTOR_URL_CREATE_EXCEPTION=\"{0}\" is an invalid URL
ADAPTOR_DIRECTORY_CREATE_EXCEPTION=The directory \"{0}\" could not be created
ADAPTOR_DIRECTORY_EXCEPTION=The file \"{0}\" is not a directory
ADAPTER_FILEEXIST_EXCEPTION=The file \"{0}\" does not exist
ADAPTOR_STORAGE_INIT_FAILED_MSG=Locking is not possible in the directory \"{0}\". A common reason is that the file system or Runtime Environment does not support file locking for that location. Please choose a different location, or disable file locking passing \"-Dosgi.locking=none\" as a VM argument. 
ADAPTOR_STORAGE_INIT_FAILED_TITLE =Invalid Configuration Location
ECLIPSE_STARTUP_FILEMANAGER_OPEN_ERROR=Error reading configuration: {0}

BUNDLE_READ_EXCEPTION=An error occurred trying to read the bundle
BUNDLE_CLASSPATH_ENTRY_NOT_FOUND_EXCEPTION=The bundle class path entry \"{0}\" could not be found for the bundle \"{1}\"

RESOURCE_NOT_FOUND_EXCEPTION=The resource {0} could not be found
URL_NO_BUNDLE_ID=No bundle ID specified: {0}
URL_INVALID_BUNDLE_ID=Invalid Bundle ID specified: {0}
URL_NO_BUNDLE_FOUND=No bundle found for URL: {0}

EclipseStarter_InstallLocation=No install location found.

Module_Fragment_InvalidOperation=Invalid operation on a fragment.
Module_LockError=Unable to acquire the state change lock for the module: 
Module_LockStateError=Cannot transition to the state \"{0}\" while already in the process of transition to the following states: {1}
Module_LockTimeout=Timeout after waiting {0} seconds to acquire the lock.
Module_ResolveError=Could not resolve module: 
Module_StartError=Error starting module.
Module_StopError=Error stopping module.
Module_Transient_StartError=Cannot transiently start a module whose start level is not met.
Module_UninstalledError=Module has been uninstalled.

ModuleContainer_NameCollision=A bundle is already installed with the name "{0}" and version "{1}"
ModuleContainer_NameCollisionWithLocation=A bundle is already installed with the name "{0}" and version "{1}" at location: {2}
ModuleContainer_NegativeStartLevelError=Cannot set the start level to less than 1: 
ModuleContainer_StateLockError=Could not acquire state change lock.
ModuleContainer_SystemNotActiveError=The system has not be activated yet.
ModuleContainer_SystemStartLevelError=Cannot set the start level of the system bundle.

ModuleResolutionReport_AnotherSingleton=Another singleton bundle selected: 
ModuleResolutionReport_FilteredByHook=Bundle was filtered by a resolver hook.
ModuleResolutionReport_NoReport=No resolution report for the bundle.
ModuleResolutionReport_Unknown=Unknown error: 
ModuleResolutionReport_UnresolvedReq=Unresolved requirement: 
ModuleResolutionReport_UsesConstraintError=Bundle was not resolved because of a uses constraint violation.

ModuleResolver_RecursiveError=Detected a recursive resolve operation.
ModuleResolver_SingletonDisabledError=Could not resolve mandatory modules because another singleton was selected or the module was disabled: 

OSGiManifestBuilderFactory_ExtensionNativeError=Extension bundles cannot have native code.
OSGiManifestBuilderFactory_ExtensionReqBundleError=Extension bundles cannot require bundles.
OSGiManifestBuilderFactory_InvalidManifestError=Invalid Manifest header "{0}": {1}

SystemModule_LockError=Could not lock the system bundle state for shutdown.

BundleContextImpl_LoadActivatorError=Error loading bundle activator.
