###############################################################################
# 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
###############################################################################
# Install Update Core Properties File
# 

BaseSiteFactory.CannotRetriveParentDirectory=Unable to retrieve parent directory for URL \"{0}\".
BaseSiteFactory.CannotEncodeURL= Unable to encode URL \"{0}\".

ContentReference.UnableToCreateInputStream= Unable to create an input stream for the reference \"{0}\".
ContentReference.UnableToReturnReferenceAsFile= Unable to return reference \"{0}\" as File.
ContentReference.UnableToReturnReferenceAsURL= Unable to return reference \"{0}\" as URL.
ContentReference.HttpNok= Server returned HTTP response code: \"{0} {1}\" for URL: {2}.
ContentReference.FileDoesNotExist=The file \"{0}\" does not exist on the file system.

Feature.SiteAlreadySet= Internal Error: Site already set for the feature \"{0}\".
Feature.TaskInstallFeatureFiles= Installing feature files: 
Feature.TaskInstallPluginFiles= Installing plug-in \"{0}\" files:
Feature.TaskInstallNonPluginsFiles= Installing non-plug-in files: 
Feature.NoContentProvider= Internal Error. The feature \"{0}\" does not have a content provider.
Feature.NoFeatureContentConsumer= Internal Error. The Feature \"{0}\" does not have a content consumer.
Feature.NoURL= Unknown URL.
Feature.FeatureVersionToString= Feature: \"{0}\" Version: \"{1}\".
Feature.InstallationCancelled= Installation has been cancelled by the User.
Feature.UnableToInitializeFeatureReference= Unable to initialize feature reference for versioned identifier \"{0}\".

FeatureContentProvider.Downloading= Downloading:
FeatureContentProvider.UnableToRetrieve= Unable to retrieve remote reference \"{0}\".
FeatureContentProvider.UnableToCreate= Unable to create local file \"{0}\".
FeatureContentProvider.ExceptionDownloading = An exception occured while downloading feature from \"{0}\".

InstallHandler.unableToCreateHandler = Unable to create custom install handler for feature \"{0}\".
InstallHandler.notFound = Custom install handler required by feature \"{0}\" was not found.
InstallHandler.invalidHandler = Feature \"{0}\" contains invalid custom install handler.
InstallHandler.callException = Error reported by custom install handler for feature \"{0}\".
InstallHandler.deactivated = Custom install handler for feature \"{0}\" deactivated due to errors.
InstallHandler.error = Unable to complete action for feature \"{0}\" due to errors.

InstallMonitor.DownloadSize = ({0}K bytes)
InstallMonitor.DownloadSizeLong = ({0}K of {1}K bytes)

Reconciler.appNotFound = Application \"{0}\" not found.

JarContentReference.Unpacking= Unpacking:

Site.CannotSaveSiteInto= Cannot save Site information into the File: \"{0}\".
Site.CannotFindCategory= Unable to find category: \"{0}\" in Site: \"{1}\".
Site.NoCategories= The Site does not contain any categories.
Site.NoContentProvider= Internal Error. Content Provider not set for Site: \"{0}\".

VersionedIdentifier.IdOrVersionNull= Internal Error. Unable to create an Identifier. The unique identifier or the version is null or empty: unique identifier=\"{0}\" version=\"{1}\".

SiteFile.CannotRemovePlugin= Unable to remove plug-in: \"{0}\" from Site: \"{1}\".
SiteFile.CannotRemoveFeature= Unable to remove feature: \"{0}\" from Site: \"{1}\".
SiteFile.UnableToCreateURL= Unable to create URL for location \"{0}\".
SiteFile.Removing= Removing: 

SiteFileFactory.UnableToCreateURL= Internal Error. Unable to create URL from \"{0}\".
SiteFileFactory.UnableToAccessSite= Unable to access Site stream.
SiteFileFactory.DirectoryDoesNotExist=The directory \"{0}\" does not exist on the file system.

DefaultFeatureParser.NoFeatureTag= Error parsing feature stream. Unable to find root element \"feature\" in the stream.
DefaultFeatureParser.WrongParsingStack= Internal Error parsing feature stream. Unexpected Parsing Stack: \"{0}\"
DefaultFeatureParser.UnknownElement= Error parsing feature stream. Unknown element \"{0}\" in parsing state \"{1}\". Check the validity of the XML file.
DefaultFeatureParser.TooManyURLtag= Error parsing feature stream. There is more than one \"URL\" element in the XML stream. There should be only one.
DefaultFeatureParser.UnknownStartState= Internal Error parsing feature stream. Unknown start state \"{0}\".
DefaultFeatureParser.IdOrVersionInvalid= Error parsing feature stream. The unique identifier or the version is null or empty for the State: \"{2}\": unique identifier=\"{0}\" version=\"{1}\".
DefaultFeatureParser.MissingId= Error parsing feature stream. The \"id\" tag of the element \"{0}\" is null or empty. Value is required.
DefaultFeatureParser.ParsingStackBackToInitialState= Internal Error parsing feature stream. Parsing stack back to Initial State.
DefaultFeatureParser.ElementAlreadySet= Error parsing feature stream. Element: \"{0}\" already set for the feature.
DefaultFeatureParser.StateIncludeWrongElement= Error parsing feature stream. State: \"{0}\" should not include Element \"{1}\".
DefaultFeatureParser.RequireStateWithoutImportElement=Error parsing feature stream. State: \"require\" must include at least an \"import\" element.
DefaultFeatureParser.MissingPatchVersion=Error parsing feature stream. Attribute "version" of the element "import" must be set when "patch" is set to "true".
DefaultFeatureParser.wrongMatchForPatch=Error parsing feature stream. When attribute "patch" of the element "import" is set to "true", the only valid value for the "match" attribute is "perfect". 
DefaultFeatureParser.patchWithPlugin=Error parsing feature stream. Attribute "patch" can only be used for features.
DefaultFeatureParser.MultiplePatchImports=Error parsing feature stream. State: "require" must not contain more than one "import" element with the attribute "patch" set to "true".
DefaultFeatureParser.UnknownEndState= Internal Error parsing feature stream. Unknown end state \"{0}\".
DefaultFeatureParser.ErrorParsing= Error Parsing feature stream. Error: \"{0}\"
DefaultFeatureParser.ErrorlineColumnMessage= Error Parsing feature stream. Element \"{0}\" line: \"{1}\" column:\"{2}\". Error: \"{3}\".
DefaultFeatureParser.ErrorParsingFeature= Error Parsing feature stream.
DefaultFeatureParser.UnknownState= Unknown State \"{0}\".
DefaultFeatureParser.NoLicenseText= Error parsing feature stream. State: \"license\" must include some text.

# 2.0.2
DefaultFeatureParser.PluginAndFeatureId=One Import statement is incorrect: Both feature and plug-in ID are either null or specified.

SiteContentProvider.ErrorCreatingURLForArchiveID= Internal Error. Unable to create URL for Archive Identifier \"{0}\" on Site \"{1}\".

DefaultSiteParser.NoSiteTag= Error parsing site stream. Unable to find root element \"site\" in the stream.
DefaultSiteParser.WrongParsingStack= Internal Error parsing site stream. Unexpected Parsing Stack: \"{0}\"
DefaultSiteParser.UnknownElement= Error parsing site stream. Unknown element \"{0}\" in parsing state \"{1}\". Check the validity of the XML file.
DefaultSiteParser.UnknownStartState= Internal Error parsing site stream. Unknown start state \"{0}\".
DefaultSiteParser.Missing= Error parsing site stream. The \"{0}\" tag of the element \"{1}\" is null or empty. Value is required.
DefaultSiteParser.ParsingStackBackToInitialState= Internal Error parsing site stream. Parsing stack back to Initial State.
DefaultSiteParser.ElementAlreadySet= Error parsing site stream. Element: \"{0}\" already set for the Site.
DefaultSiteParser.CategoryAlreadySet= Error parsing site stream. Element: \"{0}\": \"{1}\" already set for the Site.
DefaultSiteParser.UnknownEndState= Internal Error parsing site stream. Unknown end state \"{0}\".
DefaultSiteParser.ErrorParsing= Error Parsing site stream. Error: \"{0}\"
DefaultSiteParser.ErrorlineColumnMessage= Error Parsing site stream. Element \"{0}\" line: \"{1}\" column:\"{2}\". Error: \"{3}\".
DefaultSiteParser.ErrorParsingSite= Error Parsing site stream.
DefaultSiteParser.UnknownState= Unknown State \"{0}\".
DefaultSiteParser.InvalidXMLStream= The XML stream is not a valid default \"site.xml\" file. The root tag is not site.

ModelObject.ModelReadOnly= Internal Error. The Model Object is read-only.

SiteModelObject.ErrorParsingSiteStream= Error parsing site stream.
SiteModelObject.ErrorAccessingSiteStream= Error accessing site stream.

InstallConfiguration.ParsingErrorDuringCreation= Internal Error parsing \"{0}\": \"{1}\".
InstallConfiguration.ErrorDuringFileAccess= Error accessing file: \"{0}\".

Parser.UnableToCreateURL= Internal Error parsing stream. Check the validity of the URLs.
Parser.InternalError= Error Parsing Stream. An internal error occurred. \"{0}\".
Parser.UnableToResolveURL= Internal Error parsing stream. Unable to resolve URL \"{0}\".

InstallConfigurationParser.FeatureReferenceNoURL= Error Parsing Stream. A feature reference element does not have a URL tag. Value is required.

FeatureExecutableContentProvider.FileDoesNotExist= The file \"{0}\" does not exist.
FeatureExecutableContentProvider.InvalidDirectory= The path \"{0}\" is not a valid directory.
FeatureExecutableContentProvider.UnableToCreateURLFor=Unable to create a URL for \"{0}\".
FeatureExecutableContentProvider.UnableToRetrieveArchive=Error retrieving the archive entry: \"{0}\".
FeatureExecutableContentProvider.UnableToRetrieveNonPluginEntry=Error retrieving the non-plug-in entry: \"{0}\". 
FeatureExecutableContentProvider.UnableToRetrieveFeatureEntry=Error retrieving feature entry content reference: \"{0}\".
FeatureExecutableContentProvider.UnableToRetrievePluginEntry =Error retrieving the plug-in entry: \"{0}\". 

ConfiguredSite.NonInstallableSite= You cannot install in the site \"{0}\". It is considered non updateable.
ConfiguredSite.NullFeatureToInstall= Internal Error. The feature to be installed is null.
ConfiguredSite.NonUninstallableSite= You cannot uninstall from the site \"{0}\". It is considered non updateable.
ConfiguredSite.NoSite= No Site
ConfiguredSite.CannotFindFeatureToUnconfigure= Internal Error. Unable to disable feature \"{0}\" on site \"{1}\". Cannot find feature.
ConfiguredSite.CannotFindFeatureToConfigure= Internal Error. Unable to enable feature \"{0}\". Cannot find feature. 
ConfiguredSite.CannotFindPluginEntry= Unable to retrieve Plug-in Entry \"{0}\" on site \"{1}\". Cannot find plug-in entry. Do you want to Continue ?
ConfiguredSite.MissingPluginsBrokenFeature= Plug-in \"{0}\" version \"{1}\" referenced by this feature is missing.
ConfiguredSite.UnableToRemoveConfiguredFeature= Unable to remove a enabled feature: \"{0}\" You must disable the feature first.
ConfiguredSite.UnableToFindFeature= Unable to Find the feature \"{0}\" on this site.
ConfiguredSite.SiteURLNull=The Site URL is null.
ConfiguredSite.NonLocalSite=The Site is not on the local file system. Cannot validate. 
ConfiguredSite.NotSameProductId=The site cannot be modified by this product. It is already associated with product: \"{0}\".
ConfiguredSite.ContainedInAnotherSite=This site is contained in another site: \"{0}\".
ConfiguredSite.ReadOnlySite=The site is marked as read only.
ConfiguredSite.UnableResolveURL= Internal Error. Unable to resolve URL \"{0}\".
ConfiguredSite.UnableToAccessSite= Internal Error. Unable to access platform site \"{0}\".

FeatureFactory.CreatingError= Error creating feature \"{0}\".
FeatureModelFactory.ErrorAccesingFeatureStream= Error accessing feature stream.

FeatureExecutableFactory.NullURL= Error creating feature. The URL used to create the feature is null.
FeatureExecutableFactory.CannotCreateURL= Error creating feature. Unable to create URL for \"{0}\".

FeaturePackagedContentProvider.NoManifestFile= Unable to retrieve \"{0}\" in feature located at \"{1}\". 
FeaturePackagedContentProvider.NoFeature= No feature
FeaturePackagedContentProvider.FileDoesNotExist= The File \"{0}\" does not exist.
FeaturePackagedContentProvider.InvalidDirectory= The directory \"{0}\" is not a valid directory.
FeaturePackagedContentProvider.ErrorRetrieving= Error retrieving \"{0}\".
FeaturePackagedContentProvider.ContentReferenceString= from \"{0}\"
FeaturePackagedContentProvider.URLString= located at \"{0}\"

FeatureReference.UnableToResolveURL= Internal Error: Unable to resolve model using URL: \"{0}\".

FeatureTypeFactory.UnableToFindFeatureFactory= Unable to find a feature factory for the extension id \"{0}\". 

InstallConfiguration.UnableToSaveConfiguration= Unable to save configuration in \"{0}\".
InstallConfiguration.UnableToEncodeConfiguration= Unable to encode configuration in \"{0}\".
InstallConfiguration.UnableToCreateURL= Unable to create URL from \"{0}\".
InstallConfiguration.UnableToCast= Internal Error. The Configuration Site object is not a subclass of ConfiguredSiteModel
InstallConfiguration.UnableToSavePlatformConfiguration=Unable to save platform configuration in \"{0}\".
InstallConfiguration.AlreadyNativelyLinked=The site is already linked.
InstallConfiguration.NotAnExtensionSite=The site cannot be linked to. It is not an extension site.

InternalSiteManager.UnableToCreateSiteWithType= Extension Error. The Site Factory of type \"{0}\" cannot access the Site \"{1}\".
InternalSiteManager.UnableToAccessURL= Unable to access \"{0}\".
InternalSiteManager.UnableToCreateURL= Unable to create URL from \"{0}\".
InternalSiteManager.UnableToParseURL= Unable to parse the stream \"{0}\".
InternalSiteManager.FailedRetryAccessingSite= Failed retry accessing site using default installed format instead of default packaged format.
InternalSiteManager.ConnectingToSite = Connecting To Site...

SiteReconciler.UnableToFindInstallDeltaFactory= Internal Error: Unable to find factory to display changes. Open the Update Manager manually.

Policy.NoMessageAvailable= No message available.
Policy.MissingMessage= Missing message: \"{0}\".
Policy.Missing= missing \"{0}\".

GlobalConsumer.ErrorCreatingFile= Unable to create file \"{0}\".

SiteFileContentConsumer.UnableToCreateURL= Unable to create URL from \"{0}\".
SiteFileContentConsumer.UnableToCreateURLForFile= Unable to create URL for the file \"{0}\".

ContentConsumer.UnableToRename = Internal Error. Unable to rename \"{0}\" to \"{1}\".

SiteFileFactory.UnableToRetriveSite= Unable retrieve this Site from a directory. The URL should point to a file instead.
SiteFileFactory.UnableToObtainParentDirectory= Unable obtain the parent directory from the file \"{0}\".
SiteFileFactory.FileDoesNotExist= Unable to access site \"{0}\". The directory does not exist.
SiteFileFactory.UnableToCreateURLForFile= Unable to create URL from \"{0}\".
SiteFileFactory.ErrorParsingFile= Unable to parse file \"{0}\".
SiteFileFactory.ErrorAccessing= Unable to access file \"{0}\".

SiteTypeFactory.UnableToFindSiteFactory= Unable to find a site factory for the extension id \"{0}\". 

UpdateManagerUtils.UnableToRemoveFile= Unable to remove \"{0}\" from the file system.
UpdateManagerUtils.FileAlreadyExists= Unable to create \"{0}\" on the file system. File already exists.

SiteLocal.ErrorParsingSavedState= Error during parsing of the configuration saved state \"{0}\".
SiteLocal.UnableToCreateURLFor= Unable to create URL from \"{0}\".
SiteLocal.UnableToAccessFile= Unable to access file \"{0}\".
SiteLocal.UnableToSaveStateIn= Unable to persist configurations into \"{0}\".
SiteLocal.UnableToEncodeConfiguration= Unable to encode configurations into \"{0}\".
SiteLocal.UnableToResolve= Internal Error. Unable to resolve \"{0}\".
SiteLocal.UnableToRetrieveRWArea= Internal Error. Unable to retrieve location to write metadata.
SiteLocal.SiteUrlIsNull= Internal Error: URL of local site is null.
SiteLocal.UnableToDetermineFeatureStatusSiteNull=Unable to determine status of feature\"{0}\" The site is NULL.
SiteLocal.TwoVersionSamePlugin1=Plug-in: \"{0}\" version: \"{1}\" referenced by this feature is not included at runtime. Runtime includes plug-in version \"{2}\".
SiteLocal.TwoVersionSamePlugin2=Plug-in: \"{0}\" version: \"{1}\" referenced by this feature is not included at runtime. Runtime includes plug-in version \"{2}\" supplied by feature \"{3}\" version \"{4}\".
SiteLocal.FeatureUnHappy=The feature is not configured properly.
SiteLocal.FeatureHappy=The feature is configured properly.
SiteLocal.FeatureAmbiguous=The feature may not be configured properly.
SiteLocal.NestedFeatureUnHappy=Included feature \"{0}\" version \"{1}\" contains problems.
SiteLocal.NestedFeatureUnavailable=Included feature \"{0}\" is missing.
SiteLocal.NoPluginVersion=No plug-in: \"{0}\" included at runtime.

#202
SiteLocal.UnableToDetermineFeatureStatusConfiguredSiteNull=Unable to determine status of feature\"{0}\" The Configured Site is NULL.
SiteLocal.FeatureDisable=The feature is disabled.
SiteLocal.FeatureStatusUnknown=Unknown state.
SiteLocal.NestedFeatureDisable=Included feature \"{0}\" version \"{1}\" is disabled.
SiteLocal.NullFeature=The feature is null.
SiteLocal.WrongURL=A URL of an Originating site is not valid.

SiteReconciler.UnableToSaveStateIn= Unable to persist delta change into \"{0}\".
SiteReconciler.UnableToEncodeConfiguration= Unable to encode delta change into \"{0}\".

SiteURLFactory.UnableToCreateURL= Internal Error. Unable to create a URL from \"{0}\".
SiteURLFactory.UnableToAccessSiteStream= Unable to access Site stream: \"{0}\"

JarVerifier.Verify= Verifying: \"{0}\"
JarVerifier.UnableToFindEncryption= Unable to find algorithm to verify integrity of KeyStore \"{0}\".
JarVerifier.UnableToLoadCertificate= Unable to load one or multiples certificates in the KeyStore \"{0}\".
JarVerifier.UnableToFindProviderForKeystore= Unable to find provider for the KeyStore type \"{0}\".
JarVerifier.KeyStoreNotLoaded= Internal Error. KeyStore not Initialized/Loaded.
JarVerifier.UnableToAccessJar= Unable to access JAR file \"{0}\".
JarVerifier.InvalidFile= The File \"{0}\" is not a valid JAR file. It does not contain a Manifest.
JarVerifier.InvalidJar= The File \"{0}\" is not a valid JAR file.

JarVerificationResult.ValidBetween= Valid between \"{0}\" and \"{1}\".
JarVerificationResult.ExpiredCertificate= * EXPIRED CERTIFICATE *
JarVerificationResult.CertificateNotYetValid= * CERTIFICATE NOT YET VALID *
JarVerificationResult.CertificateValid= Valid certificate.

JarVerificationService.UnsucessfulVerification=Verification of feature unsuccessful. Installation cancelled.
JarVerificationService.CancelInstall=Installation cancelled.

UpdateManagerUtils.UnableToLog=Unable to access error recovery log file: \"{0}\".

SessionDelta.EnableFeatures=Enabling selected features...

ConfigurationPolicy.UnableToDisable= Unable to disable feature \"{0}\".
ConfigurationPolicy.ParentIsEnable= The parent feature: \"{0}\" is enable.

ConnectionThreadManager.tooManyConnections = There are too many network connections still active. \
If you are experiencing network problems, try again later. If the error persists, restart the \
application.
ConnectionThreadManager.unresponsiveURL = Still waiting for response: {0}

IncludedFeatureReference.featureUninstalled= Feature {0} is uninstalled.
