# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# $Id: LocalStrings.properties,v 1.1 2011/06/28 21:14:19 rherrmann Exp $
#
# Default localized string information
# Localized this the Default Locale as is en_US

jsp.error.compiler=No Java compiler available
jsp.error.bad.servlet.engine=Incorrect servlet engine version!
jsp.error.no.scratch.dir=The JSP engine is not configured with a scratch dir.\
\n Please add \"jsp.initparams=scratchdir=<dir-name>\" \
\n in the servlets.properties file for this context.
jsp.error.bad.scratch.dir=The scratchDir you specified: {0} is unusable.
jsp.message.scratch.dir.is=Scratch dir for the JSP engine is: {0}
jsp.message.parent_class_loader_is=Parent class loader is: {0}
jsp.message.dont.modify.servlets=IMPORTANT: Do not modify the generated servlets
jsp.error.not.impl.comments=Internal error: Comments not implemented
jsp.error.not.impl.directives=Internal error: Directives not implemented
jsp.error.not.impl.declarations=Internal error: Declarations not implemented
jsp.error.not.impl.expressions=Internal error: Expressions not implemented
jsp.error.not.impl.scriptlets=Internal error: Scriptlets not implemented
jsp.error.not.impl.usebean=Internal error: useBean not implemented
jsp.error.not.impl.getp=Internal error: getProperty not implemented
jsp.error.not.impl.setp=Internal error: setProperty not implemented
jsp.error.not.impl.plugin=Internal error: plugin not implemented
jsp.error.not.impl.forward=Internal error: forward not implemented
jsp.error.not.impl.include=Internal error: include not implemented
jsp.error.unavailable=JSP has been marked unavailable
jsp.error.usebean.missing.attribute=useBean: id attribute missing or misspelled
jsp.error.usebean.missing.type=useBean ({0}): Either class or type attribute must be \
specified: 
jsp.error.usebean.duplicate=useBean: Duplicate bean name: {0}
jsp.error.usebean.prohibited.as.session=Can't use as session bean {0} since it is prohibited \
by jsp directive defined earlier: 
jsp.error.usebean.not.both=useBean: Can't specify both class and beanName attribute: 
jsp.error.usebean.bad.type.cast=useBean ({0}): Type ({1}) is not assignable from class ({2}) 
jsp.error.invalid.scope=Illegal value of \'scope\' attribute: {0} (must be one of \"page\", \"request\", \"session\", or \"application\")
jsp.error.classname=Can't determine classname from .class file
jsp.error.outputfolder=No output folder
jsp.warning.bad.type=Warning: bad type in .class file
jsp.error.data.file.write=Error while writing data file
jsp.error.page.conflict.contenttype=Page directive: illegal to have multiple occurrences of 'contentType' with different values (old: {0}, new: {1})
jsp.error.page.invalid.contenttype=Page directive: invalid value for contentType
jsp.error.page.conflict.session=Page directive: illegal to have multiple occurrences of 'session' with different values (old: {0}, new: {1})
jsp.error.page.invalid.session=Page directive: invalid value for session
jsp.error.page.conflict.buffer=Page directive: illegal to have multiple occurrences of 'buffer' with different values (old: {0}, new: {1})
jsp.error.page.invalid.buffer=Page directive: invalid value for buffer
jsp.error.page.conflict.autoflush=Page directive: illegal to have multiple occurrences of 'autoFlush' with different values (old: {0}, new: {1})
jsp.error.page.invalid.autoflush=Page directive: invalid value for autoFlush
jsp.error.page.conflict.isthreadsafe=Page directive: illegal to have multiple occurrences of 'isThreadSafe' with different values (old: {0}, new: {1})
jsp.error.page.invalid.isthreadsafe=Page directive: invalid value for isThreadSafe
jsp.error.page.conflict.info=Page directive: illegal to have multiple occurrences of 'info' with different values (old: {0}, new: {1})
jsp.error.page.invalid.info=Page directive: invalid value for info
jsp.error.page.conflict.iserrorpage=Page directive: illegal to have multiple occurrences of 'isErrorPage' with different values (old: {0}, new: {1})
jsp.error.page.invalid.iserrorpage=Page directive: invalid value for isErrorPage
jsp.error.page.conflict.errorpage=Page directive: illegal to have multiple occurrences of 'errorPage' with different values (old: {0}, new: {1})
jsp.error.page.conflict.language=Page directive: illegal to have multiple occurrences of 'language' with different values (old: {0}, new: {1})
jsp.error.tag.conflict.language=Tag directive: illegal to have multiple occurrences of 'language' with different values (old: {0}, new: {1})
jsp.error.page.language.nonjava=Page directive: invalid language attribute
jsp.error.tag.language.nonjava=Tag directive: invalid language attribute
jsp.error.page.defafteruse.language=Page directive: can't define language after a scriptlet 
jsp.error.page.nomapping.language=Page directive: No mapping for language: 
jsp.error.page.conflict.extends=Page directive: illegal to have multiple occurrences of 'extends' with different values (old: {0}, new: {1})
jsp.error.page.conflict.iselignored=Page directive: illegal to have multiple occurrences of 'isELIgnored' with different values (old: {0}, new: {1})
jsp.error.tag.conflict.iselignored=Tag directive: illegal to have multiple occurrences of 'isELIgnored' with different values (old: {0}, new: {1})
jsp.error.page.invalid.iselignored=Page directive: invalid value for isELIgnored
jsp.error.tag.invalid.iselignored=Tag directive: invalid value for isELIgnored
jsp.error.page.multi.pageencoding=Page directive must not have multiple occurrences of pageencoding
jsp.error.tag.conflict.attr=Tag directive: illegal to have multiple occurrences of the attribute \"{0}\" with different values (old: {1}, new: {2})
jsp.error.tag.multi.pageencoding=Tag directive must not have multiple occurrences of pageencoding
jsp.error.page.bad_b_and_a_combo=Page directive: Illegal combination of buffer=\"none\" && autoFlush=\"false\"
jsp.error.not.impl.taglib=Internal error: Tag extensions not implemented
jsp.error.include.missing.file=Missing file argument to include
jsp.error.include.bad.file=Bad file argument to include 
jsp.error.include.exception=Unable to include {0}
jsp.error.stream.close.failed=Failed to close stream
jsp.error.stream.closed=Stream closed
jsp.error.invalid.forward=Invalid forward tag
jsp.error.unknownException=Unhandled error! You might want to consider having an error page \
to report such errors more gracefully
jsp.error.invalid.directive=Invalid directive
jsp.error.invalid.implicit=Invalid implicit TLD for tag file at {0}
jsp.error.invalid.implicit.version=Invalid JSP version defined in implicit TLD for tag file at {0}
jsp.error.invalid.version=Invalid JSP version defined for tag file at {0}
jsp.error.directive.istagfile={0} directive cannot be used in a tag file
jsp.error.directive.isnottagfile={0} directive can only be used in a tag file
jsp.error.tagfile.tld.name=The \"name\" attribute of the tag directive has a value {0} while the \"name\" tag of the \"tag-file\" element in the TLD is {1}
jsp.error.action.istagfile={0} action cannot be used in a tag file
jsp.error.action.isnottagfile={0} action can be used in tag files only
jsp.error.unterminated=Unterminated {0} tag
jsp.error.usebean.notinsamefile=useBean tag must begin and end in the same physical file
jsp.error.loadclass.taghandler=Unable to load tag handler class \"{0}\" for tag \"{1}\"
jsp.error.unable.compile=Unable to compile class for JSP
jsp.error.unable.load=Unable to load class for JSP
jsp.error.unable.rename=Unable to rename class file {0} to {1}
jsp.error.mandatory.attribute={0}: Mandatory attribute {1} missing
jsp.error.flush=Exception occurred when flushing data
jsp.engine.info=Jasper JSP 2.2 Engine
jsp.error.invalid.expression="{0}" contains invalid expression(s): {1}
jsp.error.invalid.attribute={0} has invalid attribute: {1}
jsp.error.usebean.class.notfound=Class: {0} not found
jsp.error.file.cannot.read=Cannot read file: {0}
jsp.error.file.already.registered=Recursive include of file {0}
jsp.error.file.not.registered=file {0} not seen in include
jsp.error.quotes.unterminated=Unterminated quotes
jsp.error.attr.quoted=Attribute value should be quoted
jsp.error.attr.novalue=Attribute {0} has no value
jsp.error.tag.attr.unterminated=Unterminated tag attribute list
jsp.error.param.noname=No name in PARAM tag
jsp.error.param.novalue=No value in PARAM tag
jsp.error.beans.nullbean=Attempted a bean operation on a null object.
jsp.error.beans.nobeaninfo=No BeanInfo for the bean of type ''{0}'' could be found, the class likely does not exist.
jsp.error.beans.introspection=An exception occurred while introspecting the read method of property ''{0}'' in a bean of type ''{1}'':\n{2}
jsp.error.beans.nomethod=Cannot find a method to read property ''{0}'' in a bean of type ''{1}''
jsp.error.beans.nomethod.setproperty=Can''t find a method to write property ''{0}'' of type ''{1}'' in a bean of type ''{2}''
jsp.error.beans.noproperty=Cannot find any information on property ''{0}'' in a bean of type ''{1}''
jsp.error.beans.property.conversion=Unable to convert string \"{0}\" to class \"{1}\" for attribute \"{2}\": {3}
jsp.error.beans.propertyeditor.notregistered=Property Editor not registered with the PropertyEditorManager
jsp.error.beans.setproperty.noindexset=Cannot set indexed property
jsp.error.include.tag=Invalid jsp:include tag
jsp.error.include.noflush=jsp:include needs to have \"flush=true\"
jsp.error.include.badflush=jsp:include page=\"...\" flush=\"true\" is the only valid combination in JSP 1.0
jsp.error.attempt_to_clear_flushed_buffer=Error: Attempt to clear a buffer that's already been flushed
jsp.error.overflow=Error: JSP Buffer overflow
jsp.error.paramexpected=Expecting \"jsp:param\" standard action with \"name\" and \"value\" attributes
jsp.error.param.invalidUse=The jsp:param action must not be used outside the jsp:include, jsp:forward, or jsp:params elements
jsp.error.params.invalidUse=jsp:params must be a direct child of jsp:plugin
jsp.error.fallback.invalidUse=jsp:fallback must be a direct child of jsp:plugin
jsp.error.namedAttribute.invalidUse=jsp:attribute must be the subelement of a standard or custom action
jsp.error.jspbody.invalidUse=jsp:body must be the subelement of a standard or custom action
jsp.error.closeindividualparam=param tag needs to be closed with \"/>\"
jsp.error.closeparams=param tag needs to be closed with /params
jsp.error.params.emptyBody=jsp:params must contain at least one nested jsp:param
jsp.error.params.illegalChild=jsp:params must not have any nested elements other than jsp:param
jsp.error.plugin.notype=type not declared in jsp:plugin
jsp.error.plugin.badtype=Illegal value for 'type' attribute in jsp:plugin: must be 'bean' or 'applet'
jsp.error.plugin.nocode=code not declared in jsp:plugin
jsp.error.ise_on_clear=Illegal to clear() when buffer size == 0
jsp.error.setproperty.beanNotFound=setProperty: Bean {0} not found
jsp.error.getproperty.beanNotFound=getProperty: Bean {0} not found
jsp.error.setproperty.ClassNotFound=setProperty: Class {0} not found
jsp.error.javac=Javac exception
jsp.error.javac.env=Environment: 
jsp.error.compilation=Error compiling file: {0} {1}
jsp.error.setproperty.invalidSyntax=setProperty: can't have non-null value when property=*
jsp.error.setproperty.beanInfoNotFound=setproperty: beanInfo for bean {0} not found
jsp.error.setproperty.paramOrValue=setProperty: either param or value can be present
jsp.error.setproperty.arrayVal=setProperty: can't set array property {0} through a string constant value
jsp.error.undeclared_namespace=A custom tag was encountered with an undeclared namespace [{0}] 
jsp.warning.keepgen=Warning: Invalid value for the initParam keepgenerated. Will use the default value of \"false\"
jsp.warning.xpoweredBy=Warning: Invalid value for the initParam xpoweredBy. Will use the default value of \"false\"
jsp.warning.enablePooling=Warning: Invalid value for the initParam enablePooling. Will use the default value of \"true\"
jsp.warning.invalidTagPoolSize=Warning: Invalid value for the init parameter named tagPoolSize. Will use default size of {0}
jsp.warning.mappedFile=Warning: Invalid value for the initParam mappedFile. Will use the default value of \"false\"
jsp.warning.classDebugInfo=Warning: Invalid value for the initParam classdebuginfo. Will use the default value of \"false\"
jsp.warning.checkInterval=Warning: Invalid value for the initParam checkInterval. Will use the default value of \"300\" seconds
jsp.warning.modificationTestInterval=Warning: Invalid value for the initParam modificationTestInterval. Will use the default value of \"4\" seconds
jsp.warning.recompileOnFail=Warning: Invalid value for the initParam recompileOnFail. Will use the default value of \"false\"
jsp.warning.development=Warning: Invalid value for the initParam development. Will use the default value of \"true\"
jsp.warning.fork=Warning: Invalid value for the initParam fork. Will use the default value of \"true\"
jsp.warning.reloading=Warning: Invalid value for the initParam reloading. Will use the default value of \"true\"
jsp.warning.dumpSmap=Warning: Invalid value for the initParam dumpSmap. Will use the default value of \"false\"
jsp.warning.genchararray=Warning: Invalid value for the initParam genStrAsCharArray. Will use the default value of \"false\"
jsp.warning.suppressSmap=Warning: Invalid value for the initParam suppressSmap. Will use the default value of \"false\"
jsp.warning.displaySourceFragment=Warning: Invalid value for the initParam displaySourceFragment. Will use the default value of \"true\"
jsp.warning.maxLoadedJsps=Warning: Invalid value for the initParam maxLoadedJsps. Will use the default value of \"-1\"
jsp.warning.jspIdleTimeout=Warning: Invalid value for the initParam jspIdleTimeout. Will use the default value of \"-1\"
jsp.error.badtaglib=Unable to open taglibrary {0} : {1}
jsp.error.badGetReader=Cannot create a reader when the stream is not buffered
jsp.warning.unknown.element.in.taglib=Unknown element ({0}) in taglib
jsp.warning.unknown.element.in.tag=Unknown element ({0}) in tag
jsp.warning.unknown.element.in.tagfile=Unknown element ({0}) in tag-file
jsp.warning.unknown.element.in.attribute=Unknown element ({0}) in attribute
jsp.warning.unknown.element.in.variable=Unknown element ({0}) in variable
jsp.warning.unknown.element.in.validator=Unknown element ({0}) in validator
jsp.warning.unknown.element.in.initParam=Unknown element ({0}) in validator's init-param
jsp.warning.unknown.element.in.function=Unknown element ({0}) in function
jsp.error.more.than.one.taglib=More than one taglib in the TLD: {0}
jsp.error.teiclass.instantiation=Failed to load or instantiate TagExtraInfo class: {0}
jsp.error.non_null_tei_and_var_subelems=Tag {0} has one or more variable subelements and a TagExtraInfo class that returns one or more VariableInfo
jsp.error.parse.error.in.TLD=Parse Error in the tag library descriptor: {0}
jsp.error.unable.to.open.TLD=Unable to open the tag library descriptor: {0}
jsp.buffer.size.zero=Buffer size <= 0
jsp.error.file.not.found=File \"{0}\" not found
jsp.message.copyinguri=Copying {0} into {1}
jsp.message.htmlcomment=\nStripping Comment: \t{0}
jsp.message.handling_directive=\nHandling Directive: {0}\t{1}
jsp.message.handling_plugin=\nPlugin: {0}
jsp.message.package_name_is=Package name is: {0}
jsp.message.class_name_is=Class name is: {0}
jsp.message.java_file_name_is=Java file name is: {0}
jsp.message.class_file_name_is=Class file name is: {0}
jsp.message.accepted=Accepted {0} at {1}
jsp.message.adding_jar=Adding jar {0} to my classpath
jsp.message.compiling_with=Compiling with: {0}
jsp.message.template_text=template text
jsp.error.missing_attribute=According to the TLD or the tag file, attribute {0} is mandatory for tag {1}
jsp.error.bad_attribute=Attribute {0} invalid for tag {1} according to TLD
jsp.error.tld.unable_to_read=Unable to read TLD \"{1}\" from JAR file \"{0}\": {2}
jsp.error.tld.unable_to_get_jar=Unable to get JAR resource \"{0}\" containing TLD: {1}
jsp.error.tld.missing_jar=Missing JAR resource \"{0}\" containing TLD
jsp.error.webxml_not_found=Could not locate web.xml
jsp.cmd_line.usage=Usage: jsptoservlet [-dd <path/to/outputDirectory>] [-keepgenerated] \
<.jsp files>
jsp.message.cp_is=Classpath {0} is: {1}
jsp.error.unable.to_load_taghandler_class=Unable to load tag handler class {0} because of {1}
jsp.error.unable.to_find_method=Unable to find setter method for attribute: {0}
jsp.error.unable.to_convert_string=Unable to convert a String to {0} for attribute {1}
jsp.error.unable.to_introspect=Unable to introspect on tag handler class: {0} because of {1}
jsp.error.bad_tag=No tag \"{0}\" defined in tag library imported with prefix \"{1}\"
jsp.error.xml.bad_tag=No tag \"{0}\" defined in tag library associated with uri \"{1}\"
jsp.error.bad_string_Character=Cannot extract a Character from a zero length array
jsp.error.bad_string_char=Cannot extract a char from a zero length array
jsp.warning.compiler.class.cantcreate=Can't create an instance of specified compiler plugin class {0} due to {1}. Will default to Sun Java Compiler.
jsp.warning.compiler.class.notfound=Specified compiler plugin class {0} not found. Will default to Sun Java Compiler.
jsp.warning.compiler.path.notfound=Specified compiler path {0} not found. Will default to system PATH.
jsp.warning.compiler.classfile.delete.fail=Failed to delete generated class file [{0}] 
jsp.warning.compiler.javafile.delete.fail=Failed to delete generated Java file [{0}] 
jsp.error.jspc.uriroot_not_dir=The -uriroot option must specify a pre-existing directory
jsp.error.jspc.missingTarget=Missing target: Must specify -webapp or -uriroot, or one or more JSP pages
jsp.error.jspc.no_uriroot=The uriroot is not specified and cannot be located with the specified JSP file(s)
jspc.implicit.uriRoot=uriRoot implicitly set to "{0}"
jspc.usage=Usage: jspc <options> [--] <jsp files>\n\
where jsp files is\n\
\    -webapp <dir>      A directory containing a web-app, whose JSP pages\n\
\                       will be processed recursively\n\
or any number of\n\
\    <file>             A file to be parsed as a JSP page\n\
where options include:\n\
\    -help              Print this help message\n\
\    -v                 Verbose mode\n\
\    -d <dir>           Output Directory (default -Djava.io.tmpdir)\n\
\    -l                 Outputs the name of the JSP page upon failure\n\
\    -s                 Outputs the name of the JSP page upon success\n\
\    -p <name>          Name of target package (default org.apache.jsp)\n\
\    -c <name>          Name of target class name (only applies to first JSP page)\n\
\    -mapped            Generates separate write() calls for each HTML line in the JSP\n\
\    -die[#]            Generates an error return code (#) on fatal errors (default 1)\n\
\    -uribase <dir>     The uri directory compilations should be relative to\n\
\                       (default "/")\n\
\    -uriroot <dir>     Same as -webapp\n\
\    -compile           Compiles generated servlets\n\
\    -webinc <file>     Creates a partial servlet mappings in the file\n\
\    -webxml <file>     Creates a complete web.xml in the file\n\
\    -webxmlencoding <enc> Set the encoding charset used to read and write the web.xml\n\
\                       file (default is platform default encoding)\n\
\    -addwebxmlmappings Merge generated web.xml fragment into the web.xml file of the\n\
\                       web-app, whose JSP pages we are processing\n\
\    -ieplugin <clsid>  Java Plugin classid for Internet Explorer\n\
\    -classpath <path>  Overrides java.class.path system property\n\
\    -xpoweredBy        Add X-Powered-By response header\n\
\    -trimSpaces        Trim spaces in template text between actions, directives\n\
\    -javaEncoding <enc> Set the encoding charset for Java classes (default UTF-8)\n\
\    -source <version>   Set the -source argument to the compiler (default 1.6)\n\
\    -target <version>   Set the -target argument to the compiler (default 1.6)\n\

jspc.webxml.header=<?xml version="1.0" encoding="ISO-8859-1"?>\n\
\n\
<!DOCTYPE web-app\n\
\    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"\n\
\    "http://java.sun.com/dtd/web-app_2_3.dtd">\n\
<!--\n\
Automatically created by Apache Tomcat JspC.\n\
-->\n\
<web-app>\n\
\n
jspc.webxml.footer=\n\
</web-app>\n\
\n
jspc.webinc.header=\n\
<!--\n\
Automatically created by Apache Tomcat JspC.\n\
Place this fragment in the web.xml before all icon, display-name,\n\
description, distributable, and context-param elements.\n\
-->\n
jspc.webinc.footer=\n\
<!--\n\
All session-config, mime-mapping, welcome-file-list, error-page, taglib,\n\
resource-ref, security-constraint, login-config, security-role,\n\
env-entry, and ejb-ref elements should follow this fragment.\n\
-->\n
jspc.webinc.insertEnd=<!-- JSPC servlet mappings end -->
jspc.webinc.insertStart=<!-- JSPC servlet mappings start -->
jspc.error.jasperException=error-the file ''{0}'' generated the following parse exception: {1}
jspc.error.generalException=ERROR-the file ''{0}'' generated the following general exception:
jspc.error.fileDoesNotExist=The file argument ''{0}'' does not exist
jspc.error.emptyWebApp=-webapp requires a trailing file argument
jspc.delete.fail=Failed to delete file [{0}]
jsp.error.library.invalid=JSP page is invalid according to library {0}: {1}
jsp.error.tlvclass.instantiation=Failed to load or instantiate TagLibraryValidator class: {0}
jsp.error.tlv.invalid.page=Validation error messages from TagLibraryValidator for {0} in {1}
jsp.error.tei.invalid.attributes=Validation error messages from TagExtraInfo for {0}
jsp.parser.sax.propertynotsupported=SAX property not supported: {0}
jsp.parser.sax.propertynotrecognized=SAX property not recognized: {0}
jsp.parser.sax.featurenotsupported=SAX feature not supported: {0}
jsp.parser.sax.featurenotrecognized=SAX feature not recognized: {0}
jsp.error.no.more.content=End of content reached while more parsing required: tag nesting error?
jsp.error.parse.xml=XML parsing error on file {0}
jsp.error.parse.xml.line=XML parsing error on file {0}: (line {1}, col {2})
jsp.error.parse.xml.scripting.invalid.body=Body of {0} element must not contain any XML elements
jsp.error.internal.tldinit=Unable to initialize TldLocationsCache: {0}
jsp.error.internal.filenotfound=Internal Error: File {0} not found
jsp.error.internal.evaluator_not_found=Internal error: unable to load expression evaluator
jsp.error.parse.xml.invalidPublicId=Invalid PUBLIC ID: {0}
jsp.error.include.flush.invalid.value=Invalid value for the flush attribute: {0}
jsp.error.unsupported.encoding=Unsupported encoding: {0}
tld.error.variableNotAllowed=It is an error for a tag that has one or more variable subelements to have a TagExtraInfo class that returns a non-null object.
jsp.error.tldInWebDotXmlNotFound=Could not locate TLD {1} for URI {0} specified in web.xml
jsp.error.taglibDirective.absUriCannotBeResolved=The absolute uri: {0} cannot be resolved in either web.xml or the jar files deployed with this application
jsp.error.taglibDirective.missing.location=Neither \'uri\' nor \'tagdir\' attribute specified
jsp.error.taglibDirective.both_uri_and_tagdir=Both \'uri\' and \'tagdir\' attributes specified
jsp.error.invalid.tagdir=Tag file directory {0} does not start with \"/WEB-INF/tags\"
jsp.error.unterminated.user.tag=Unterminated user-defined tag: ending tag {0} not found or incorrectly nested
#jspx.error.templateDataNotInJspCdata=Validation Error: Element &lt;{0}&gt; cannot have template data. Template data must be encapsulated within a &lt;jsp:cdata&gt; element. [JSP1.2 PFD section 5.1.9]\nTemplate data in error: {1}
jspx.error.templateDataNotInJspCdata=Validation Error: Element &lt;{0}&gt; cannot have template data. Template data must be encapsulated within a &lt;jsp:text&gt; element. [JSP1.2 PFD section 5.1.9]\nTemplate data in error: {1}
#Error while processing taglib jar file {0}: {1}
jsp.error.taglib.reserved.prefix=The taglib prefix {0} is reserved
jsp.error.invalid.javaEncoding=Invalid java encodings. Tried {0} and then {1}. Both failed.
jsp.error.needAlternateJavaEncoding=Default java encoding {0} is invalid on your java platform. An alternate can be specified via the 'javaEncoding' parameter of JspServlet.
#Error when compiling, used for jsp line number error messages
jsp.error.single.line.number=An error occurred at line: {0} in the jsp file: {1}
jsp.error.multiple.line.number=\n\nAn error occurred between lines: {0} and {1} in the jsp file: {2}\n\n
jsp.error.java.line.number=An error occurred at line: {0} in the generated java file
jsp.error.corresponding.servlet=Generated servlet error:\n
jsp.error.empty.body.not.allowed=Empty body not allowed for {0}
jsp.error.jspbody.required=Must use jsp:body to specify tag body for {0} if jsp:attribute is used.
jsp.error.jspbody.emptybody.only=The {0} tag can only have jsp:attribute in its body.
jsp.error.no.scriptlets=Scripting elements ( &lt;%!, &lt;jsp:declaration, &lt;%=, &lt;jsp:expression, &lt;%, &lt;jsp:scriptlet ) are disallowed here.
jsp.error.internal.unexpected_node_type=Internal Error: Unexpected node type encountered
jsp.error.tld.fn.invalid.signature=Invalid syntax for function signature in TLD.  Tag Library: {0}, Function: {1}
jsp.error.tld.fn.duplicate.name=Duplicate function name {0} in tag library {1}
jsp.error.tld.fn.invalid.signature.commaexpected=Invalid syntax for function signature in TLD.  Comma ',' expected.  Tag Library: {0}, Function: {1}.
jsp.error.tld.fn.invalid.signature.parenexpected=Invalid syntax for function signature in TLD.  Parenthesis '(' expected.  Tag Library: {0}, Function: {1}.
jsp.error.tld.mandatory.element.missing=Mandatory TLD element {0} missing or empty in TLD {1} 
jsp.error.dynamic.attributes.not.implemented=The {0} tag declares that it accepts dynamic attributes but does not implement the required interface
jsp.error.nomatching.fragment=Cannot find an attribute directive (with name={0} and fragment=true) prior to the fragment directive.
jsp.error.attribute.noequal=equal symbol expected
jsp.error.attribute.noquote=quote symbol expected
jsp.error.attribute.unterminated=attribute for {0} is not properly terminated
jsp.error.attribute.noescape=Attribute value {0} is quoted with {1} which must be escaped when used within the value
jsp.error.attribute.nowhitespace=The JSP specification requires that an attribute name is preceded by whitespace
jsp.error.attribute.duplicate=Attribute qualified names must be unique within an element
jsp.error.missing.tagInfo=TagInfo object for {0} is missing from TLD
jsp.error.deferredmethodsignaturewithoutdeferredmethod=Cannot specify a method signature if 'deferredMethod' is not 'true'
jsp.error.deferredvaluetypewithoutdeferredvalue=Cannot specify a value type if 'deferredValue' is not 'true'
jsp.error.deferredmethodandvalue='deferredValue' and 'deferredMethod' cannot be both 'true'
jsp.error.fragmentwithtype=Cannot specify both 'fragment' and 'type' attributes.  If 'fragment' is present, 'type' is fixed as 'javax.servlet.jsp.tagext.JspFragment'
jsp.error.fragmentwithrtexprvalue=Cannot specify both 'fragment' and 'rtexprvalue' attributes.  If 'fragment' is present, 'rtexprvalue' is fixed as 'true'
jsp.error.fragmentWithDeclareOrScope=Both 'fragment' and 'declare' or 'scope' attributes specified in variable directive
jsp.error.var_and_varReader=Only one of \'var\' or \'varReader\' may be specified
jsp.error.missing_var_or_varReader=Missing \'var\' or \'varReader\' attribute
jsp.warning.bad.urlpattern.propertygroup=Bad value {0} in the url-pattern subelement in web.xml
jsp.error.literal_with_void=A literal value was specified for attribute {0} that is defined as a deferred method with a return type of void. JSP.2.3.4 does not permit literal values in this case
jsp.error.unknown_attribute_type=Unknown attribute type ({1}) for attribute {0}.
jsp.error.coerce_to_type=Cannot coerce value ({2}) to type ({1}) for attribute {0}.
jsp.error.jspelement.missing.name=Mandatory XML-style \'name\' attribute missing
jsp.error.xmlns.redefinition.notimplemented=Internal error: Attempt to redefine xmlns:{0}.  Redefinition of namespaces is not implemented.
jsp.error.could.not.add.taglibraries=Could not add one or more tag libraries.
jsp.error.duplicate.name.jspattribute=The attribute {0} specified in the standard or custom action also appears as the value of the name attribute in the enclosed jsp:attribute
jsp.error.not.in.template={0} not allowed in a template text body.
jsp.error.badStandardAction=Invalid standard action
jsp.error.xml.badStandardAction=Invalid standard action: {0}
jsp.error.tagdirective.badbodycontent=Invalid body-content ({0}) in tag directive
jsp.error.simpletag.badbodycontent=The TLD for the class {0} specifies an invalid body-content (JSP) for a SimpleTag.
jsp.error.config_pagedir_encoding_mismatch=Page-encoding specified in jsp-property-group ({0}) is different from that specified in page directive ({1})
jsp.error.prolog_pagedir_encoding_mismatch=Page-encoding specified in XML prolog ({0}) is different from that specified in page directive ({1})
jsp.error.prolog_config_encoding_mismatch=Page-encoding specified in XML prolog ({0}) is different from that specified in jsp-property-group ({1})
jsp.error.attribute.custom.non_rt_with_expr=According to TLD or attribute directive in tag file, attribute {0} does not accept any expressions
jsp.error.attribute.standard.non_rt_with_expr=The {0} attribute of the {1} standard action does not accept any expressions
jsp.error.attribute.deferredmix=Cannot use both ${} and #{} EL expressions in the same attribute value
jsp.error.scripting.variable.missing_name=Unable to determine scripting variable name from attribute {0}
jasper.error.emptybodycontent.nonempty=According to TLD, tag {0} must be empty, but is not
jsp.error.tagfile.nameNotUnique=The value of {0} and the value of {1} in line {2} are the same.
jsp.error.tagfile.nameFrom.noAttribute=Cannot find an attribute directive with a name attribute with a value \"{0}\", the value of this name-from-attribute attribute.
jsp.error.tagfile.nameFrom.badAttribute=The attribute directive (declared in line {1} and whose name attribute is \"{0}\", the value of this name-from-attribute attribute) must be of type java.lang.String, is \"required\" and not a \"rtexprvalue\".
jsp.error.page.noSession=Cannot access session scope in page that does not participate in any session
jsp.error.usebean.noSession=Illegal for useBean to use session scope when JSP page declares (via page directive) that it does not participate in sessions
jsp.error.xml.encodingByteOrderUnsupported = Given byte order for encoding \"{0}\" is not supported.
jsp.error.xml.encodingDeclInvalid = Invalid encoding name \"{0}\".
jsp.error.xml.encodingDeclRequired = The encoding declaration is required in the text declaration.
jsp.error.xml.morePseudoAttributes = more pseudo attributes is expected.
jsp.error.xml.noMorePseudoAttributes = no more pseudo attributes is allowed.
jsp.error.xml.versionInfoRequired = The version is required in the XML declaration.
jsp.error.xml.xmlDeclUnterminated = The XML declaration must end with \"?>\".
jsp.error.xml.reservedPITarget = The processing instruction target matching \"[xX][mM][lL]\" is not allowed.
jsp.error.xml.spaceRequiredInPI = White space is required between the processing instruction target and data.
jsp.error.xml.invalidCharInContent = An invalid XML character (Unicode: 0x{0}) was found in the element content of the document.
jsp.error.xml.spaceRequiredBeforeStandalone = White space is required before the encoding pseudo attribute in the XML declaration.
jsp.error.xml.sdDeclInvalid = The standalone document declaration value must be \"yes\" or \"no\", not \"{0}\".
jsp.error.xml.invalidCharInPI = An invalid XML character (Unicode: 0x{0}) was found in the processing instruction.
jsp.error.xml.versionNotSupported = XML version \"{0}\" is not supported, only XML 1.0 is supported.
jsp.error.xml.pseudoAttrNameExpected = a pseudo attribute name is expected.
jsp.error.xml.expectedByte = Expected byte {0} of {1}-byte UTF-8 sequence.
jsp.error.xml.invalidByte = Invalid byte {0} of {1}-byte UTF-8 sequence.
jsp.error.xml.operationNotSupported = Operation \"{0}\" not supported by {1} reader.
jsp.error.xml.invalidHighSurrogate = High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x{0}.
jsp.error.xml.invalidASCII = Byte \"{0}\" not 7-bit ASCII.
jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl = White space is required before the encoding pseudo attribute in the XML declaration.
jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl = White space is required before the encoding pseudo attribute in the text declaration.
jsp.error.xml.spaceRequiredBeforeVersionInTextDecl = White space is required before the version pseudo attribute in the text declaration.
jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl = White space is required before the version pseudo attribute in the XML declaration.
jsp.error.xml.eqRequiredInXMLDecl = The '' = '' character must follow \"{0}\" in the XML declaration.
jsp.error.xml.eqRequiredInTextDecl = The '' = '' character must follow \"{0}\" in the text declaration.
jsp.error.xml.quoteRequiredInTextDecl = The value following \"{0}\" in the text declaration must be a quoted string.
jsp.error.xml.quoteRequiredInXMLDecl = The value following \"{0}\" in the XML declaration must be a quoted string.
jsp.error.xml.invalidCharInTextDecl = An invalid XML character (Unicode: 0x{0}) was found in the text declaration.
jsp.error.xml.invalidCharInXMLDecl = An invalid XML character (Unicode: 0x{0}) was found in the XML declaration.
jsp.error.xml.closeQuoteMissingInTextDecl = closing quote in the value following \"{0}\" in the text declaration is missing.
jsp.error.xml.closeQuoteMissingInXMLDecl = closing quote in the value following \"{0}\" in the XML declaration is missing.
jsp.error.multiple.jsp = Cannot have multiple specifications of 
jsp.error.jspoutput.conflict=&lt;jsp:output&gt;: illegal to have multiple occurrences of \"{0}\" with different values (old: {1}, new: {2})
jsp.error.jspoutput.doctypenamesystem=&lt;jsp:output&gt;: 'doctype-root-element' and 'doctype-system' attributes must appear together
jsp.error.jspoutput.doctypepulicsystem=&lt;jsp:output&gt;: 'doctype-system' attribute must appear if 'doctype-public' attribute appears
jsp.error.jspoutput.nonemptybody=&lt;jsp:output&gt; must not have a body
jsp.error.jspoutput.invalidUse=&lt;jsp:output&gt; must not be used in standard syntax
jsp.error.attributes.not.allowed = {0} must not have any attributes
jsp.error.tagfile.badSuffix=Missing \".tag\" suffix in tag file path {0}
jsp.error.tagfile.illegalPath=Illegal tag file path: {0}, must start with \"/WEB-INF/tags\" or \"/META-INF/tags\"
jsp.error.plugin.wrongRootElement=Name of root element in {0} different from {1}
jsp.error.attribute.invalidPrefix=The attribute prefix {0} does not correspond to any imported tag library
jsp.error.nested.jspattribute=A jsp:attribute standard action cannot be nested within another jsp:attribute standard action
jsp.error.nested.jspbody=A jsp:body standard action cannot be nested within another jsp:body or jsp:attribute standard action
jsp.error.variable.either.name=Either name-given or name-from-attribute attribute must be specified in a variable directive
jsp.error.variable.both.name=Cannot specify both name-given or name-from-attribute attributes in a variable directive
jsp.error.variable.alias=Both or none of the name-from-attribute and alias attributes must be specified in a variable directive
jsp.error.attribute.null_name=Null attribute name
jsp.error.jsptext.badcontent=\'&lt;\', when appears in the body of &lt;jsp:text&gt;, must be encapsulated within a CDATA
jsp.error.jsproot.version.invalid=Invalid version number: \"{0}\", must be \"1.2\", \"2.0\", \"2.1\" or \"2.2\"
jsp.error.noFunctionPrefix=The function {0} must be used with a prefix when a default namespace is not specified
jsp.error.noFunction=The function {0} cannot be located with the specified prefix
jsp.error.noFunctionMethod=Method \"{0}\" for function \"{1}\" not found in class \"{2}\"
jsp.error.function.classnotfound=The class {0} specified in TLD for the function {1} cannot be found: {2}
jsp.error.signature.classnotfound=The class {0} specified in the method signature in TLD for the function {1} cannot be found. {2}
jsp.error.text.has_subelement=&lt;jsp:text&gt; must not have any subelements
jsp.error.data.file.read=Error reading file \"{0}\"
jsp.error.prefix.refined=Attempt to redefine the prefix {0} to {1}, when it was already defined as {2} in the current scope.
jsp.error.nested_jsproot=Nested &lt;jsp:root&gt;
jsp.error.unbalanced.endtag=The end tag \"&lt;/{0}\" is unbalanced
jsp.error.invalid.bean=The value for the useBean class attribute {0} is invalid.
jsp.error.prefix.use_before_dcl=The prefix {0} specified in this tag directive has been previously used by an action in file {1} line {2}.

jsp.exception=An exception occurred processing JSP page {0} at line {1}

# JSP 2.1
jsp.error.el.template.deferred=#{...} is not allowed in template text
jsp.error.el.parse={0} : {1}
jsp.error.page.invalid.deferredsyntaxallowedasliteral=Page directive: invalid value for deferredSyntaxAllowedAsLiteral
jsp.error.tag.invalid.deferredsyntaxallowedasliteral=Tag directive: invalid value for deferredSyntaxAllowedAsLiteral
jsp.error.page.conflict.deferredsyntaxallowedasliteral=Page directive: illegal to have multiple occurrences of 'deferredSyntaxAllowedAsLiteral' with different values (old: {0}, new: {1})
jsp.error.tag.conflict.deferredsyntaxallowedasliteral=Tag directive: illegal to have multiple occurrences of 'deferredSyntaxAllowedAsLiteral' with different values (old: {0}, new: {1})

jsp.error.page.invalid.trimdirectivewhitespaces=Page directive: invalid value for trimDirectiveWhitespaces
jsp.error.tag.invalid.trimdirectivewhitespaces=Tag directive: invalid value for trimDirectiveWhitespaces
jsp.error.page.conflict.trimdirectivewhitespaces=Page directive: illegal to have multiple occurrences of 'trimDirectiveWhitespaces' with different values (old: {0}, new: {1})
jsp.error.tag.conflict.trimdirectivewhitespaces=Tag directive: illegal to have multiple occurrences of 'trimDirectiveWhitespaces' with different values (old: {0}, new: {1})

# JarScanner
jsp.warning.noJarScanner=Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.

# JavacErrorDetail
jsp.error.bug48498=Unable to display JSP extract. Probably due to an XML parser bug (see Tomcat bug 48498 for details).

# UniqueAttributesImpl
jsp.error.duplicateqname=An attribute with duplicate qualified name [{0}] was found. Attribute qualified names must be unique within an element.

# JSP unloading handling
jsp.message.jsp_queue_created=Created jsp queue with length {0} for context [{1}]
jsp.message.jsp_added=Adding JSP for path [{0}] to queue of context [{1}]
jsp.message.jsp_queue_update=Updating JSP for path [{0}] in queue of context [{1}]
jsp.message.jsp_removed_excess=Removing excess JSP for path [{0}] from queue of context [{1}]
jsp.message.jsp_removed_idle=Removing idle JSP for path [{0}] in context [{1}] after {2} seconds");
jsp.message.jsp_unload_check=Checking JSPs for unload in context [{0}], JSP count: {1} queue length: {2}

xmlParser.skipBomFail=Failed to skip BOM when parsing XML input stream