###############################################################################
# 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_JSFServletClassNameLabel=JSF Servlet C&lassname:
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_DEFAULT_IMPL_DESC=[implementation - default]
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_MISSING_DESC=[missing]
JSFLibrariesPreferencePage_Description=JSF Libraries contain jars with JSF components and tag libraries.   Some JSF Libraries can be specially marked as implementations so that the WebApp can be executed.
JSFLibrariesPreferencePage_IMPL_DESC=[implementation]
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 Libraries 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 Libraries:
JSFLibraryContainerWizardPage_Add=Add...
JSFLibraryContainerWizardPage_V1Registry_Warning_DialogTitle=Backward compatibility issue
JSFLibraryWizard_JSFLibraryWizard_DontShowThisAgain_CheckBoxLabel=Do not show this message again (affects all listed projects)
JSFLibraryContainerWizardPage_V1Registry_Warning_DialogText=This project is currently configured for use with an obsolete version of JSF libraries. \
Changing JSF library settings on this project may break backward compatibility with older versions of JSF tools.\
\n\nSee http://wiki.eclipse.org/index.php/JSF_Library_Migration for more information.
JSFLibraryContainerWizardPage_EditLibrary_DescriptionText=Select JSF Library for this reference to use.  Choose 'Edit...' to modify contents of the selected library.
JSFLibraryContainerWizardPage_Edit=Edit...
JSFLibraryContainerWizardPage_ImplAlreadyPresent=An implementation has already been chosen.  Please remove before adding different one
JSFLibraryContainerWizardPage_ErrorInitializing=Error during initialization
JSFLibraryContainerWizardPage_SelectOneImpl=Choose only one implementation

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.
JSFLibraryWizard_V1JSFLibrary_DialogMessage=The projects listed below contain JSF library references that are\
obsolete and may not be automatically updated by this change. To fix this issue, you need to update these\
these projects.\
\n\nSee http://wiki.eclipse.org/index.php/JSF_Library_Migration for more information. \n\nProjects: {0}
JSFLibraryWizard_V1JSFLibrary_DialogTitle=Backward compatibility issue

JSFLibraryConfigControl_ImplementationLibrary=Implementation Library
JSFLibraryPropertyPage_No_JSF_Facet_Installed=JSF Facet not installed.
JSFLibraryConfigControl_NewImplementationLibrary=New...
JSFLibraryConfigControl_ServerSuppliedButtonTooltip=Chosen server adapter must supply the JSF Implementation jars.
JSFLibraryConfigControl_ServerSuppliedButtonLabel=Server Supplied JSF Implementation
JSFLibraryConfigControl_NewImplButtonTooltip=Create new user supplied implementation library
JSFLibraryConfigControl_DeployJAR=Deploy jars to WEB-INF/lib
JSFLibraryConfigControl_ComponentLibrary=Component Libraries
JSFLibraryConfigControl_DeployButtonLabel=Deploy
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)

JSFLibraryEditControl_ImplVersion_UNKNOWN=UNKNOWN

JSFPreferences_RootPage_Description=Expand the tree to edit preferences for a specific feature.