###############################################################################
# Copyright (c) 2000, 2008 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
###############################################################################
### Boot plugin message catalog

### Platform Configuration
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}\"

InstalledSiteParser_UnableToCreateURL= Internal Error. Unable to create URL from \"{0}\".
InstalledSiteParser_UnableToCreateURLForFile= Unable to create URL from \"{0}\".
InstalledSiteParser_ErrorParsingFile= Unable to parse file \"{0}\".
InstalledSiteParser_ErrorAccessing= Unable to access file \"{0}\".
InstalledSiteParser_date = Invalid date attribute {0}
BundleManifest_noVersion = {0} attribute not found in manifest for bundle \"{1}\".  Bundle will be ignored.

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

BundleGroupProvider=Update Manager Configurator

ConfigurationActivator_initialize=Cannot initialize the Update Configurator
ConfigurationActivator_createConfig=Cannot create configuration in {0}
ConfigurationActivator_uninstallBundle=Could not uninstall unused bundle {0}
ConfigurationParser_cannotLoadSharedInstall=Could not load from shared install
ConfigurationActivator_installBundle=Could not install bundle {0}
PluginEntry_versionError=Unable to create versioned identifier: {0} {1}

IniFileReader_MissingDesc = Cannot find plugin for feature {0}
IniFileReader_OpenINIError = Cannot open branding file {0}
IniFileReader_ReadIniError = Error reading branding file {0}
IniFileReader_ReadPropError = Error reading branding properties file {0}
IniFileReader_ReadMapError = Error reading mapping files {0}

SiteEntry_computePluginStamp = Cannot compute plugins change stamp for site {0} because it does not support plugin detection.
SiteEntry_cannotFindFeatureInDir=Unable to find feature.xml in directory: {0}
SiteEntry_duplicateFeature=Duplicate feature found on site {0} : {1}
SiteEntry_pluginsDir = {0} is not a valid plugins directory.
PlatformConfiguration_expectingPlatformXMLorDirectory=Either specify the configuration directory or a file named platform.xml
PlatformConfiguration_cannotBackupConfig=Cannot backup current configuration
PlatformConfiguration_cannotCloseStream=Could not close output stream for
PlatformConfiguration_cannotCloseTempFile=Could not close output stream for temp file
PlatformConfiguration_cannotRenameTempFile=Could not rename configuration temp file
PlatformConfiguration_cannotLoadConfig=Cannot load configuration from
PlatformConfiguration_cannotLoadDefaultSite=Cannot load default site
PlatformConfiguration_cannotFindConfigFile=Platform configuration file cannot be found
PlatformConfiguration_cannotSaveNonExistingConfig=Configuration cannot be saved because it does not exist

PluginParser_plugin_no_id = Plugin does not have a valid identifier: {0}
PluginParser_plugin_no_version = Plugin does not have a valid version: {0}
XMLPrintHandler_unsupportedNodeType=Unsupported XML Node Type.
