###############################################################################
# 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
###############################################################################
JSFFacetInstallPage_title=JSF Capabilities
JSFFacetInstallPage_description=Add JSF capabilities to this Web Project
JSFFacetInstallPage_JSFImplLabel=JSF &Implementation:
JSFFacetInstallPage_Add1=A&dd...
JSFFacetInstallPage_Add2=&Add...
JSFFacetInstallPage_DeployJarsLabel=&Deploy jars to WEB-INF/lib
JSFFacetInstallPage_JSFConfigLabel=JSF &Configuration File:
JSFFacetInstallPage_JSFServletNameLabel=JSF &Servlet Name:
JSFFacetInstallPage_JSFURLMappingLabel=&URL Mapping Patterns:
JSFFacetInstallPage_JSFLibraryLabel0=JSF Libraries:
JSFFacetInstallPage_PatternDialogTitle=Specify URL Pattern
JSFFacetInstallPage_PatternDialogDesc=URL Pattern
JSFFacetInstallPage_Remove=&Remove
JSFFacetInstallPage_PatternEmptyMsg=Pattern must not be empty
JSFFacetInstallPage_PatternSpecifiedMsg=Pattern is already specified
JSFFacetInstallPage_ErrorNoWebAppDataModel=Unable to locate WebApp datamodel

JSFLibrariesPreferencePage_DefinedJSFLibraries=Defined JSF Libraries:
JSFLibrariesPreferencePage_New=New...
JSFLibrariesPreferencePage_Edit=Edit...
JSFLibrariesPreferencePage_Remove=Remove
JSFLibrariesPreferencePage_CannotRemovePluginProvidedTitle=Cannot Remove
JSFLibrariesPreferencePage_CannotRemovePluginProvidedMessage=Plugin provided libraries cannot be removed from the registry
JSFLibrariesPreferencePage_MakeDefault=Make Default
JSFLibrariesPreferencePage_Description=JSF Libraries contain jars with JSF components and tag libraries.   Some JSF Libaries can be specially marked as implementations so that the WebApp can be executed.
JSFLibrariesPreferencePage_CannotModifyPluginProvidedTitle=Cannot Modify
JSFLibrariesPreferencePage_CannotModifyPluginProvidedMessage=Plugin provided libraries cannot be edited

JSFLibraryContainerWizardPage_PageName=Add JSF Library
JSFLibraryContainerWizardPage_Title=JSF Library
JSFLibraryContainerWizardPage_Description=Select JavaServer Face Library to add to the classpath
JSFLibraryContainerWizardPage_WarningNoJSFFacet=JavaServer Face Libraries can only be configured for Dynamic Web projects with the JSF facet installed.
JSFLibraryContainerWizardPage_JSFLibraries=JSF Libaries:
JSFLibraryContainerWizardPage_Add=Add...
JSFLibraryContainerWizardPage_ErrorInitializing=Error during initialization

JSFLibraryWizard_DESCRIPTION=Create a library of jars that make up a JSF component library.
JSFLibraryWizard_IMPLS_ONLY_DESC=Create a library of jars that make up a JSF implementation library.
JSFLibraryWizard_CreateImplementation=Create JSF Implementation Library
JSFLibraryWizard_CreateJSFLibrary=Create JSF Library
JSFLibraryWizard_EditJSFLibrary=Edit JSF Library
JSFLibraryWizard_JSFLibrary=JSF Library
JSFLibraryWizard_LibraryName=Library &Name:
JSFLibraryWizard_VersionSupported=&Version Supported:
JSFLibraryWizard_LibraryJars=Library &Jars
JSFLibraryWizard_IsJSFImplementation=Is JSF &Implementation
JSFLibraryWizard_DeployJars=&Deploy Jars
JSFLibraryWizard_Add=&Add...
JSFLibraryWizard_Remove=&Remove
JSFLibraryWizard_ExtJarFileDialogTitle=Browse for Jars/Zips
JSFLibraryWizard_ValidateNoJars=The library must contain at least one jar.
JSFLibraryWizard_ValidateNoLibraryName=A library name must be supplied.
JSFLibraryWizard_ValidateExistingLibraryName=A library or implementation by this name already exists.

JSFLibraryConfigControl_ImplementationLibrary=Implementation Library
JSFLibraryConfigControl_NewImplementationLibrary=New...
JSFLibraryConfigControl_DeployJAR=Deploy jars to WEB-INF/lib
JSFLibraryConfigControl_ComponentLibrary=Component Libraries
JSFLibraryConfigControl_Add=\ \ >  
JSFLibraryConfigControl_Remove=\ \ <  
JSFLibraryConfigControl_AddAll=\ \ >>  
JSFLibraryConfigControl_RemoveAll=\ \ <<  
JSFLibraryConfigControl_NewComponentLibrary=New...
JSFLibraryConfigControl_TH_Deploy=Deploy
JSFLibraryConfigControl_NullProject=No project specified.
JSFLibraryConfigControl_TH_LibraryName=Library Name

JSFValidationPreferencePage_ELPrefPanel_Title=Expression Language (EL) Validation
JSFValidationPreferencePage_ELPrefPanel_BuildValidationCheckBoxTitle=Validate EL on Build/Run Validation
JSFValidationPreferencePage_ELPrefPanel_IncrementalValidationCheckBoxTitle= Validate EL as you type (may be slow on some pages)
