# $Id$
#
# 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.warning.bad.type=Warning: bad type in .class file
jsp.error.data.file.write=Error while writing data file
jsp.error.page.invalid.buffer=Page directive: invalid buffer size
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.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.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.engine.info=Jasper JSP 2.0 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.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
# typo ?
#jsp.error.setproperty.invalidSayntax=setProperty: can't have non-null value when property=*
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.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.sendErrToClient=Warning: Invalid value for the initParam sendErrToClient. 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.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.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.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\
\    -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.4)\n\
\    -target <version>   Set the -target argument to the compiler (default 1.4)\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 Jakarta 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 Jakarta 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
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.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 missing or empty: {0}
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.missing.tagInfo=TagInfo object for {0} is missing from TLD
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.unknown_attribute_type=Unknown attribute 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.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.xml.invalidHighSurrogate = High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x{0}.
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\" or \"2.0\"
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}.
