###############################################################################
# Copyright (c) 2005 Oracle Corporation.
# 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:
#    Gerry Kessler - initial API and implementation
#    Ian Trimble - change key names for use with org.eclipse.osgi.util.NLS
###############################################################################
JSFLibraryRegistry_ErrorCreatingURL=Error creating URL for JSF Library Registry
JSFLibraryRegistry_NoLoadCreatingNew=Could not load JSF Library Registry; creating new registry
JSFLibraryRegistry_ErrorSaving=Error saving JSF Library Registry
JSFLibraryRegistry_DEFAULT_IMPL_LABEL=<Default>
JSFLibraryRegistry_ErrorLoadingFromExtPt=Error while loading JSF Libaries from extension points

JSFFacetInstallDataModelProvider_ValidateServletName=Specify a servlet name to use
JSFFacetInstallDataModelProvider_ValidateJSFImpl=A default JSF implementation has not been set. Please use 'Add...' to create a library or un-check deploy jars
JSFFacetInstallDataModelProvider_ValidateConfigFilePath=The configuration file path is not valid
JSFFacetInstallDataModelProvider_ValidateConfigFileEmpty=Specify a valid name and location for JSF configuration file
JSFFacetInstallDataModelProvider_ValidateConfigFileRelative1=Configuration file must be specified relative to the project's {0} folder
JSFFacetInstallDataModelProvider_ValidateConfigFileRelative2=Configuration file must be located in the project's {0} folder
JSFFacetInstallDataModelProvider_ValidateConfigFileXML=JSF configuration file must be an XML file
JSFFacetInstallDataModelProvider_ValidateConfigFileSlashes=Configuration file path must not contain "\\"s.   Use "/" instead.

ArchiveFileImpl_CannotCopyFile=Cannot copy file
ArchiveFileImpl_CannotCloseFile=Cannot close file
ArchiveFileImpl_CannotLocatePluginRelativeFile=Cannot locate plugin-relative file "{0}"

PluginProvidedJSFLibraryCreationHelper_ErrorCreating=Unable to create JSF Library: {0}
PluginProvidedJSFLibraryCreationHelper_ErrorMultipleDefinition={0} defined multiple times in {1}

JSFUtils_ErrorCreatingConfigFile=Error creating config file
JSFUtils_ErrorClosingConfigFile=Error closing config file
