###############################################################################
# Copyright (c) 2004, 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
###############################################################################

#State/Resolver Messages for EN locale
BUNDLE_NOT_IN_STATE=The bundle is not in the state: {0}
BUNDLE_IN_OTHER_STATE=The bundle belongs to another state: {0}
BUNDLE_PENDING_REMOVE_STATE = The bundle is pending remove in another state: {0}

HEADER_REQUIRED=The \"{0}\" header must be specified
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}\"

RES_ERROR_DISABLEDBUNDLE=The bundle is disabled: {0}
RES_ERROR_MISSING_PERMISSION=Missing Permission: {0}
RES_ERROR_MISSING_CONSTRAINT=Missing Constraint: {0}
RES_ERROR_FRAGMENT_CONFLICT=Constraints from the fragment conflict with the host: {0}
RES_ERROR_USES_CONFLICT=Package uses conflict: {0}
RES_ERROR_SINGLETON_CONFLICT=Another singleton version selected: {0}
RES_ERROR_PLATFORM_FILTER=Platform filter did not match: {0}
RES_ERROR_NO_NATIVECODE_MATCH=No match found for native code: {0}
RES_ERROR_NATIVECODE_PATH_INVALID=The native code paths cannot be found: {0}
RES_ERROR_UNKNOWN=Unknown resolution error
