###############################################################################
# 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
JSFLibraryPropertyPage_No_JSF_Implementation_Lib_Selected=No JSF implementation library selected.
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
JSFLibraryPropertyPage_No_JSF_Facet_Installed=JSF Facet not installed.
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)
