|  | # $Id$ | 
|  | # Copyright 2004, 2008 The Apache Software Foundation | 
|  | # | 
|  | # Licensed 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. | 
|  | # | 
|  | # Contains String contants used throughout the Tapestry framework. | 
|  | # To keep things organized, each key is in two parts:  the simple class name | 
|  | # and a subkey within the class name. | 
|  |  | 
|  |  | 
|  | # Some general messages | 
|  |  | 
|  | service-no-parameters=Service {0} requires no service parameters. | 
|  | service-single-parameter=Service {0} requires exactly one service parameter. | 
|  | service-single-context-parameter=Service {0} requires exactly one context parameter. | 
|  | service-requires-parameters=Service {0} requires at least one service parameter. | 
|  | service-incorrect-parameter-count=Service {0} requires exactly {1} service parameters. | 
|  | missing-resource=Could not locate resource {0}. | 
|  | invalid-field-name=Invalid field name: {0}. | 
|  | unable-to-resolve-class=Unable to resolve class {0}. | 
|  | field-not-defined=Field {0} does not exist. | 
|  | illegal-field-access=Cannot access field {0}. | 
|  | field-is-instance=Field {0} is an instance variable, not a class variable. | 
|  | deprecated-component-param=Parameter ''{1}'' of component {0} is deprecated, use parameter ''{2}'' instead. | 
|  | must-be-wrapped-by-form={1} components must be enclosed by a Form component. | 
|  | invalid-null-parameter=Parameter ''{0}'' may not be null. | 
|  | null-value-for-binding=Binding value is null. | 
|  | no-such-component=Component {0} does not contain a component {1}. | 
|  | required-parameter=Value for parameter ''{0}'' in component {1} is null, and a non-null value is required. | 
|  | render-only-property=Property ''{0}'' of {1} may only be accessed while the component is rendering. | 
|  | unsupported-property=Property ''{1}'' is not supported by {0}. | 
|  | must-be-contained-by-body={0} components must be contained by a Body component. | 
|  | illegal-encoding=The encoding ''{0}'' is not recognized. | 
|  |  | 
|  | unable-to-parse-expression=Unable to parse OGNL expression ''{0}'': {1} | 
|  | unable-to-read-expression=Unable to read OGNL expression ''{0}'' of {1}: {2} | 
|  | unable-to-write-expression=Unable to update OGNL expression ''{0}'' of {1} to {2}: {3} | 
|  | is-constant-expression-error=Error evaluating OGNL expression ''{0}'': {1} | 
|  |  | 
|  | unable-to-lookup=Unable to lookup {0}: {1} | 
|  |  | 
|  | # org.apache.tapestry | 
|  |  | 
|  | AbstractComponent.attempt-to-change-container=Attempt to change existing container. | 
|  | AbstractComponent.attempt-to-change-component-id=Attempt to change existing component id. | 
|  | AbstractComponent.null-container={0} container is null. | 
|  | AbstractComponent.attempt-to-change-page=Attempt to change existing containing page. | 
|  | AbstractComponent.attempt-to-change-spec=Attempt to change existing component specification. | 
|  |  | 
|  | AbstractPage.attempt-to-change-locale=Attempt to change existing locale for a page. | 
|  | AbstractPage.attempt-to-change-name=Attempt to change existing name for a page. | 
|  |  | 
|  | AbstractMarkupWriter.missing-constructor-parameters=Incomplete parameters to AbstractMarkupWriter constructor. | 
|  | AbstractMarkupWriter.tag-not-open=A tag must be open before attributes may be set in an IMarkupWriter. | 
|  |  | 
|  | ApplicationServlet.could-not-locate-engine=Could not locate an engine to service this request. | 
|  | ApplicationServlet.could-not-parse-spec=Unable to parse application specification {0}. | 
|  | ApplicationServlet.get-app-path-not-overriden=Application servlet {0} does not provide an implementation of method getApplicationServletPath(). | 
|  | ApplicationServlet.no-application-specification=Running application without an application specification. | 
|  | ApplicationServlet.engine-stateful-without-session=Engine {0} is stateful even though there is no HttpSession.  Discarding the engine. | 
|  |  | 
|  | BaseComponent.multiple-component-references=Template for component {0} contains multiple references to embedded component {1}. | 
|  | BaseComponent.unbalanced-close-tags=More closing tags the open tags in template. | 
|  | BaseComponent.unbalance-open-tags=Not all tags closed in template. | 
|  | BaseComponent.missing-component-spec-single=Template for component {0} does not reference embedded component: | 
|  | BaseComponent.missing-component-spec-multi=Template for component {0} does not reference embedded components: | 
|  | BaseComponent.and=and | 
|  | BaseComponent.dupe-template-expression=An expression for parameter ''{0}'' of component {1} in the template for {2} conflicts with an existing binding in the specification. | 
|  | BaseComponent.template-expression-for-informal-parameter=The template for {2} contains an expression for parameter ''{0}'' of component {1}, but {1} does not allow informal parameters. | 
|  | BaseComponent.template-expression-for-reserved-parameter=The template for {2} contains an expression for parameter ''{0}'' of component {1}, but ''{0}'' is a reserved parameter name. | 
|  | BaseComponent.dupe-string=A localized string reference for parameter ''{0}'' of component {1} in the template for {2} conflicts with an existing binding in the specification. | 
|  |  | 
|  | BaseComponentTemplateLoader.dupe-component-id=Component {0} (at {1}) conflicts with a prior declaration in the specification (at {2}). | 
|  | BaseComponentTemplateLoader.bodyless-component=This component may not have a body. | 
|  |  | 
|  | RedirectServlet.redirect-path=Redirecting to servlet at path {0}. | 
|  | RedirectServlet.redirecting=Redirecting servlet context URL to {0}. | 
|  |  | 
|  | ResponseOutputStream.content-type-not-set=Content type of response never set. | 
|  |  | 
|  | StaleLinkException.action-mismatch=Action id {0} matched component {1}, not {2}. | 
|  | StaleLinkException.component-mismatch=Action id {0} does not match component {1}. | 
|  |  | 
|  | Tapestry.even-sized-array=An even-sized array of keys and values is required. | 
|  | Tapestry.missing-method-invocation=Class {0} overrides method ''{1}'' but does not invoke the super-class implementation. | 
|  |  | 
|  | # org.apache.tapestry.asset | 
|  |  | 
|  | AssetExternalizer.externalize-failure=Could not externalize asset {0} to {1}. | 
|  | AssetService.exception-report-title=Failure to export asset {0}. | 
|  | AssetService.checksum-failure=Checksum {0} does not match that of resource {1}. | 
|  | AssetService.checksum-compute-failure=Failed to compute checksum for resource {1}. | 
|  |  | 
|  | ExternalAsset.resource-missing=Could not access external asset {0}. | 
|  |  | 
|  | # org.apache.tapestry.bean | 
|  |  | 
|  | BeanProvider.bean-not-defined=Component {0} does not define a bean name {1}. | 
|  | BeanProvider.instantiation-error=Unable to instantiate bean ''{0}'' (for component {1}) as class {2}: {3} | 
|  | AbstractBeanInitializer.unable-to-set-property=Unable to set property ''{0}'' of {1} to {2}. | 
|  |  | 
|  | # org.apache.tapestry.binding | 
|  |  | 
|  | AbstractBinding.wrong-type=Parameter {0} ({1}) is an instance of {2}, which does not inherit from {3}. | 
|  | AbstractBinding.wrong-interface=Parameter {0} ({1}) is an instance of {2}, which does not implement interface {3}. | 
|  | AbstractBinding.read-only-binding=Binding value may not be updated. | 
|  |  | 
|  | ExpressionBinding.unable-to-resolve-expression=Unable to resolve expression ''{0}'' for {1}. | 
|  | ExpressionBinding.unable-to-update-expression=Unable to update expression ''{0}'' for {1} to {2}. | 
|  |  | 
|  | ListenerBinding.invalid-access=Inappropriate invocation of {0} on instance of ListenerBinding. | 
|  | ListenerBinding.bsf-exception=Unable to execute listener script "{0}": {1} | 
|  | ListenerBinding.unable-to-undeclare-bean=Unable to undeclare bean ''{0}'' after executing "{0}". | 
|  |  | 
|  | # org.apache.tapestry.callback | 
|  |  | 
|  | DirectCallback.wrong-type=Component {0} does not implement the IDirect interface. | 
|  |  | 
|  | # org.apache.tapestry.component | 
|  |  | 
|  | Insert.unable-to-format=Unable to format object {0}. | 
|  | Any.element-not-defined=The Any component is not used in a template and the 'element' property is not bound. | 
|  |  | 
|  | # org.apache.tapestry.param | 
|  |  | 
|  | ParameterManager.no-accessor=Component {0} does not have accessor methods for property {1}. | 
|  | ParameterManager.property-not-read-write=Property {1} of component {0} is not read-write. | 
|  | ParameterManager.java-type-not-specified=No Java type was specified for parameter {0} of component {1}. | 
|  | ParameterManager.type-mismatch=Parameter {0} of component {1} is declared as {2}, but the property is {3}. | 
|  | ParameterManager.static-initialization-failure=Unable to set property {0} of component {1} from {2}. | 
|  | ParameterManager.incompatible-direction-and-binding=Parameter {0} of component {1} is direction {2} which is incompatible with {3}. | 
|  |  | 
|  | # org.apache.tapestry.engine | 
|  |  | 
|  | AbstractEngine.unable-to-process-client-request=Unable to process client request. | 
|  | AbstractEngine.unable-to-present-exception-page=Unable to present exception page. | 
|  | AbstractEngine.unknown-specification=<Unknown specification> | 
|  | AbstractEngine.unknown-service=Engine does not implement a service named ''{0}''. | 
|  | AbstractEngine.unable-to-begin-request=Tapestry unable to begin processing request. | 
|  | AbstractEngine.unable-to-cleanup-page=Unable to cleanup page {0}. | 
|  | AbstractEngine.unable-to-instantiate-visit=Unable to instantiate visit object from class {0}. | 
|  | AbstractEngine.unable-to-instantiate-global=Unable to instantiate global object from class {0}. | 
|  | AbstractEngine.unable-to-redirect=Unable to redirect to {0}. | 
|  | AbstractEngine.service-name-mismatch=Class {1} is registered as service {0} but provides service {2} instead. | 
|  | AbstractEngine.unable-to-instantiate-service=Unable to instantiate class {1} as service {0}. | 
|  | AbstractEngine.unable-to-find-dispatcher=Unable to find a request dispatcher for local resource ''{0}''. | 
|  | AbstractEngine.unable-to-forward=Unable to forward to local resource ''{0}''. | 
|  | AbstractEngine.unable-to-create-cleanup-context=Unable to create an instance of RequestContext to process end-of-session page cleanups. | 
|  | AbstractEngine.exception-during-cleanup=Exception during post-request cleanup. | 
|  | AbstractEngine.exception-during-cache-clear=Exception while clearing caches after request. | 
|  | AbstractEngine.validate-cycle=A validate cycle during page activation was detected: {0}. | 
|  |  | 
|  | ActionService.context-parameters=Service action requires either three or four service contect parameters. | 
|  | ActionService.action-component-wrong-type=Component {0} does not implement the IAction interface. | 
|  |  | 
|  | DefaultScriptSource.unable-to-parse-script=Unable to parse script {0}. | 
|  |  | 
|  | DefaultSpecificationSource.no-match-for-alias=Could not find a component matching alias {0}. | 
|  | DefaultSpecificationSource.unable-to-locate-specification=Could not locate resource {0} in the classpath. | 
|  | DefaultSpecificationSource.unable-to-open-specification=Could not open specification {0}. | 
|  | DefaultSpecificationSource.unable-to-parse-specification=Could not parse specification {0}. | 
|  |  | 
|  | DefaultTemplateSource.no-template-for-component=Could not find template for component {0} in locale {1}. | 
|  | DefaultTemplateSource.no-template-for-page=Could not find template for page {0} in locale {1}. | 
|  | DefaultTemplateSource.unable-to-parse-template=Could not parse template {0}. | 
|  | DefaultTemplateSource.unable-to-read-template=Could not read template {0}. | 
|  |  | 
|  | DirectService.context-parameters=Service direct requires either three or four service context parameters. | 
|  | DirectService.component-wrong-type=Component {0} does not implement the IDirect interface. | 
|  | DirectService.stale-session-exception=Component {0} is stateful, but the HttpSession has expired (or has not yet been created). | 
|  |  | 
|  | EngineServiceLink.unknown-parameter-name=Unknown parameter name ''{0}''. | 
|  |  | 
|  | Namespace.no-such-page=Page ''{0}'' not found in {1}. | 
|  | Namespace.no-such-component-type=Component ''{0}'' not found in {1}. | 
|  | Namespace.application-namespace=application namespace | 
|  | Namespace.framework-namespace=framework namespace | 
|  | Namespace.nested-namespace=namespace ''{0}'' | 
|  | Namespace.library-id-not-found=Library ''{0}'' not found in {1}. | 
|  |  | 
|  | RequestCycle.invalid-null-name=Parameter name may not be null in RequestCycle.getPage(String). | 
|  | RequestCycle.form-rewind-failure=Failure to rewind form {0}. | 
|  |  | 
|  | ResourceResolver.unable-to-load-class=Could not load class {0} from {1}: {2} | 
|  |  | 
|  | TagSupportService.service-only=The tagsupport service does not support tag generation. | 
|  | TagSupportService.null-attribute=Request attribute ''{0}'' is required by the tagsupport service, but the value is null. | 
|  | TagSupportService.attribute-not-string=Request attribute ''{0}'' is an instance of {1}, not a string. | 
|  | TagSupportService.attribute-not-array=Request attribute ''{0}'' is an instance of {0}, not an object array. | 
|  | BaseEngine.recorder-has-uncommited-changes=Could not forget changes to page {0} because the page's recorder has uncommitted changes. | 
|  | BaseEngine.duplicate-page-recorder=Could not create a second page recorder for page {0}. | 
|  |  | 
|  | ExternalService.page-not-compatible=Page {0} does not implement the IExternalPage interface. | 
|  |  | 
|  | # org.apache.tapestry.enhance | 
|  |  | 
|  | ComponentClassFactory.bad-property-type=Unable to convert ''{0}'' to a property type. | 
|  | ComponentClassFactory.property-type-mismatch=Unable to enhance class {0} because it contains property ''{1}'' of type {2}, not the expected type {3}. | 
|  | ComponentClassFactory.non-abstract-read=Unable to enhance class {0} because it implements a non-abstract read method for property ''{1}''. | 
|  | ComponentClassFactory.non-abstract-write=Unable to enhance class {0} because it implements a non-abstract write method for property ''{1}''. | 
|  | ComponentClassFactory.unable-to-introspect-class=Unable to introspect properties of class {0}. | 
|  | ComponentClassFactory.auto-must-be-required=Parameter ''{0}'' must be required or have a default value as it uses direction ''auto''. | 
|  | ComponentClassFactory.code-generation-error=A code generation error occured while enhancing class {0}. | 
|  |  | 
|  |  | 
|  | EnhancedClassLoader.unable-to-define-class=Unable to define class {0}: {1} | 
|  |  | 
|  | MethodFabricator.no-more-arguments=No more arguments may be added once any local variables are added. | 
|  |  | 
|  | DefaultComponentClassEnhancer.no-impl-for-abstract-method=Method ''{0}'' (declared in {1}) has no implementation in class {2} (or enhanced subclass {3}). | 
|  |  | 
|  |  | 
|  | # org.apache.tapestry.event | 
|  |  | 
|  | ObservedChangeEvent.null-property-name=Must specify a non-null propertyName when creating ObservedChangeEvent for {0}. | 
|  | ObservedChangeEvent.must-be-serializable=Must specify a serializable object as the new value of property when creating an ObservedChangeEvent. | 
|  |  | 
|  | # org.apache.tapestry.form | 
|  |  | 
|  | AbstractFormComponent.must-be-contained-by-form=This component must be contained within a Form. | 
|  |  | 
|  | Form.forms-may-not-nest=Forms may not be nested. | 
|  | Form.needs-body-for-event-handlers=A Form with event handlers must be enclosed by a Body component. | 
|  | Form.too-many-ids=Rewind of form {0} expected only {1} form elements, but an additional id was requested by component {2}. | 
|  | Form.too-few-ids=Rewind of form {0} expected {1} more form elements, starting with id ''{2}''. | 
|  | Form.id-mismatch=Rewind of form {0} expected allocated id #{1} to be ''{2}'', but was ''{3}'' (requested by component {4}). | 
|  | Form.encoding-type-contention=Components within Form {0} have requested conflicting encoding types ''{1}'' and ''{2}''. | 
|  |  | 
|  | ListEdit.unable-to-convert-value=Unable to convert {0} to an external string in ListEdit component. | 
|  | ListEdit.unable-to-convert-string=Unable to convert {0} back into an object in ListEdit component. | 
|  |  | 
|  | FormConditional.unable-to-convert-value=Unable to convert {0} to an external string in FormConditional component. | 
|  | FormConditional.unable-to-convert-string=Unable to convert {0} back into an object in FormConditional component. | 
|  |  | 
|  | Option.must-be-contained-by-select=Option component must be contained within a Select. | 
|  |  | 
|  | Radio.must-be-contained-by-group=Radio component must be contained within a RadioGroup. | 
|  |  | 
|  | RadioGroup.may-not-nest=RadioGroup components may not be nested. | 
|  |  | 
|  | Select.may-not-nest=Select components may not be nested. | 
|  |  | 
|  | LinkSubmit.may-not-nest=LinkSubmit components may not be nested. | 
|  |  | 
|  | # org.apache.tapestry.html | 
|  |  | 
|  | Body.may-not-nest=Body components may not be nested. | 
|  | Body.include-classpath-script-only=Unable to include external script {0}: only classpath resources are supported. | 
|  |  | 
|  | InsertText.conversion-error=Error converting text to lines (for InsertText component). | 
|  |  | 
|  | Rollover.must-be-contained-by-body=Rollover components must be contained within a Body component. | 
|  | Rollover.must-be-contained-by-link=Rollover components must be contained within an ILinkComponent. | 
|  |  | 
|  | Script.must-be-contained-by-body=Script components must be contained within a Body component. | 
|  |  | 
|  | # org.apache.tapestry.contrib.inspector | 
|  |  | 
|  | ShowEngine.could-not-serialize=Could not serialize the application engine. | 
|  |  | 
|  | InspectorButton.must-be-contained-by-body=InspectorButton component must be contained within a Body component. | 
|  |  | 
|  | # org.apache.tapestry.jsp | 
|  |  | 
|  | URLRetriever.unable-to-find-dispatcher=Unable to find request dispatcher for servlet at ''{0}''. | 
|  | URLRetriever.io-exception=I/O exception messaging servlet {0}: {1} | 
|  | URLRetriever.servlet-exception=Servlet exception messaging servlet {0}: {1} | 
|  |  | 
|  | AbstractLinkTag.io-exception=I/O exception writing output: {1} | 
|  |  | 
|  | AbstractTapestryTag.unable-to-evaluate-expression=Unable to evaluate OGNL expression ''{0}'': {1} | 
|  |  | 
|  | # org.apache.tapestry.link | 
|  |  | 
|  | GestureLink.missing-service=No engine service name {0}. | 
|  |  | 
|  | AbstractLinkComponent.no-nesting=ILinkComponents may not be nested. | 
|  | AbstractLinkComponent.events-need-body=A link component with multiple functions for a single event type must be contained within a Body. | 
|  |  | 
|  | # org.apache.tapestry.listener | 
|  |  | 
|  | ListenerMap.object-missing-method=Object {0} does not implement a listener method named ''{1}''. | 
|  | ListenerMap.unable-to-invoke-method=Unable to invoke method {0} on {1}: {2} | 
|  |  | 
|  | # org.apache.tapestry.multipart | 
|  |  | 
|  | UploadPart.unable-to-open-content-file=Unable to open uploaded file ''{0}''. | 
|  | UploadPart.write-failure=Error writing uploaded content to {0}: {1} | 
|  |  | 
|  | DefaultMultipartDecoder.unable-to-decode=Unable to decode request: {0} | 
|  | DefaultMultipartDecoder.encoding-not-set=No encoding has been set for this request. | 
|  |  | 
|  | # org.apache.tapestry.pageload | 
|  |  | 
|  | PageLoader.formal-parameters-only=Component {0} allows only formal parameters, binding {1} is not allowed. | 
|  | PageLoader.required-parameter-not-bound=Required parameter {0} of component {1} is not bound. | 
|  | PageLoader.unable-to-load-specification=Unable to load component specification. | 
|  | PageLoader.class-not-component=Class {0} does not implement the IComponent interface. | 
|  | PageLoader.unable-to-instantiate=Unable to instantiate an instance of class {0}. | 
|  | PageLoader.page-not-allowed=Component {0} may not implement the IPage interface. | 
|  | PageLoader.class-not-page=Class {0} does not implement the IPage interface. | 
|  | PageLoader.unable-to-instantiate-component=Unable to instantiate component {0}: {1} | 
|  | PageLoader.missing-asset=Unable to locate asset ''{0}'' of component {1} as {2}. | 
|  | PageLoader.unable-to-initialize-property=Unable to initialize property {0} of {1}: {2} | 
|  | PageLoader.inherit-informal-invalid-component-formal-only=Component {0} allows only formal parameters, but has inherit-informal-parameters set. | 
|  | PageLoader.inherit-informal-invalid-container-formal-only=Component {0} allows only formal parameters, but it contains component {1} that has inherit-informal-parameters set. | 
|  |  | 
|  | EstablishDefaultParameterValuesVisitor.parameter-must-have-no-default-value=Parameter {1} of component {0} is required and must not have a default value. | 
|  |  | 
|  | # org.apache.tapestry.parse | 
|  |  | 
|  | TextToken.error-trimming={0}: Failure trimming leading and trailing whitespace. | 
|  |  | 
|  | SpecificationParser.fail-convert-boolean=Could not convert ''{0}'' to boolean. | 
|  | SpecificationParser.fail-convert-int=Could not convert ''{0}'' to integer. | 
|  | SpecificationParser.fail-convert-double=Could not convert ''{0}'' to double. | 
|  | SpecificationParser.fail-convert-long=Could not convert ''{0}'' to long. | 
|  | SpecificationParser.unexpected-component-public-id=Unexpected component specification with public identifier {0}. | 
|  | SpecificationParser.unexpected-application-public-id=Unexpected application specification with public identifier {0}. | 
|  | SpecificationParser.both-type-and-copy-of=Contained component {0} contains both type and copy-of attributes. | 
|  | SpecificationParser.missing-type-or-copy-of=Contained component {0} does not specify attribute type or copy-of. | 
|  | SpecificationParser.unable-to-copy=Unable to copy component {0}, which does not exist. | 
|  | SpecificationParser.invalid-parameter-name=Parameter ''{0}'' is an invalid name.  Parameter names should be valid Java identifiers. | 
|  | SpecificationParser.invalid-page-name=''{0}'' is not a valid page name.  Page names must start with a letter and consist only of letters, numbers, period, dash and underscore. | 
|  | SpecificationParser.invalid-component-type=''{0}'' is not a valid component type.  Types must be valid Java identifiers. | 
|  | SpecificationParser.invalid-property-name=''{0}'' is not a valid JavaBean property name.  Property names must be valid Java identifiers. | 
|  | SpecificationParser.invalid-bean-name=''{0}'' is not a valid helper bean name.  Helper bean names must be valid Java identifiers. | 
|  | SpecificationParser.unknown-static-value-type=Unknown <static-value> type: ''{0}''. | 
|  | SpecificationParser.invalid-component-id=''{0}'' is not a valid component id.  Component ids must be valid Java identifiers. | 
|  | SpecificationParser.invalid-asset-name=''{0}'' is not a valid asset name.  Asset names must be valid Java identifiers. | 
|  | SpecificationParser.invalid-service-name=''{0}'' is not a valid service name.  Service names must start with a letter, and contain only letters, numbers, dash, underscore and period. | 
|  | SpecificationParser.invalid-library-id=''{0}'' is not a valid library id.  Library ids must be valid Java identifiers. | 
|  | SpecificationParser.invalid-extension-name=''{0}'' is not a valid extension name.  Extension names must start with a letter, and contain only letters, numbers, dash and underscore. | 
|  | SpecificationParser.invalid-component-type=''{0}'' is not a valid component type. | 
|  | SpecificationParser.framework-library-id-is-reserved=The library id ''{0}'' is reserved and may not be used. | 
|  | SpecificationParser.no-attribute-and-body=It is not valid to specify a value for attribute ''{0}'' of <{1}> and provide a value in the body of the element. | 
|  | SpecificationParser.required-extended-attribute=Element <{0}> does not specify a value for attribute ''{1}'', or contain a body value. | 
|  | SpecificationParser.error-reading-resource=Unable to read {0}: {1} | 
|  |  | 
|  | ValidatePublicIdRule.no-public-id=Document {0} does not define a public id. | 
|  |  | 
|  | TemplateParser.comment-not-ended=Comment on line {0} did not end. | 
|  | TemplateParser.unclosed-tag=Tag <{0}> on line {1} is never closed. | 
|  | TemplateParser.unclosed-unknown-tag=Tag on line {1} is never closed. | 
|  | TemplateParser.missing-attribute-value=Tag <{0}> on line {1} is missing a value for attribute {2}. | 
|  | TemplateParser.content-block-may-not-be-ignored=Tag <{0}> on line {1} is the template content, and may not be in an ignored block. | 
|  | TemplateParser.content-block-may-not-be-empty=Tag <{0}> on line {1} is the template content, and may not be empty. | 
|  | TemplateParser.unknown-component-id=Tag <{0}> on line {1} references unknown component id ''{2}''. | 
|  | TemplateParser.component-may-not-be-ignored=Tag <{0}> on line {1} is a dynamic component, and may not appear inside an ignored block. | 
|  | TemplateParser.nested-ignore=Tag <{0}> on line {1} should be ignored, but is already inside an ignored block (ignored blocks may not be nested). | 
|  | TemplateParser.incomplete-close-tag=Incomplete close tag on line {0}. | 
|  | TemplateParser.improperly-nested-close-tag=Closing tag </{0}> on line {1} is improperly nested with tag <{2}> on line {3}. | 
|  | TemplateParser.unmatched-close-tag=Closing tag </{0}> on line {1} does not have a matching open tag. | 
|  | TemplateParser.component-id-invalid=Tag <{0}> on line {1} contains an invalid jwcid ''{2}''. | 
|  | TemplateParser.duplicate-tag-attribute=Tag <{0}> on line {1} contains more than one ''{2}'' attribute. | 
|  |  | 
|  |  | 
|  | TextToken.range-error={0}: out of range for template length {1}. | 
|  | TemplateToken.may-not-render={0} tokens may not render. | 
|  |  | 
|  | # org.apache.tapestry.record | 
|  |  | 
|  | PageRecorder.change-after-lock=Page recorder for page {0} is locked after a commit(), but received a change to property {1} of component {2}. | 
|  | PageRecorder.unable-to-persist=Unable to persist property {0} of component {1} as {2}. | 
|  | PageRecorder.null-property-name=A change event for component {0} failed to specify the name of the updated property. | 
|  | PageRecorder.unable-to-rollback=Unable to set property {0} of component {1} to {2}: {3} | 
|  |  | 
|  | # org.apache.tapestry.resource | 
|  |  | 
|  | ContextResourceLocation.unable-to-reference-context-path=Unable to reference context path ''{0}''. | 
|  |  | 
|  |  | 
|  | # org.apache.tapestry.script | 
|  |  | 
|  | ScriptParser.unknown-public-id=Script uses unknown public indentifier {0}. | 
|  | ScriptParser.invalid-key=''{0}'' is not a valid key.  Symbol keys must be valid Java identifiers. | 
|  | ScriptParser.unable-to-resolve-class=''{0}'' is not a resolvable class name. | 
|  |  | 
|  | InputSymbolToken.required=Script symbol ''{0}'' is required, but not specified. | 
|  | InputSymbolToken.wrong-type=Script symbol ''{0}'' is {1}, not {2}. | 
|  |  | 
|  | # org.apache.tapestry.spec | 
|  |  | 
|  | LibrarySpecification.duplicate-child-namespace-id=A child namespace with id ''{0}'' already exists. | 
|  | LibrarySpecification.duplicate-page-name=A page named ''{0}'' already exists in this namespace. | 
|  | LibrarySpecification.duplicate-component-alias=A component alias ''{0}'' already exists in this namespace. | 
|  | LibrarySpecification.duplicate-service-name=A service named ''{0}'' already exists in this namespace. | 
|  | LibrarySpecification.duplicate-extension-name=An extension named ''{0}'' already exists in this namespace. | 
|  | LibrarySpecification.no-such-extension=No extension named ''{0}'' exists in this namespace. | 
|  | LibrarySpecification.extension-does-not-implement-interface=Extension ''{0}'' (class {1}) does not implement interface {2}. | 
|  | LibrarySpecification.extension-not-a-subclass=Extension ''{0}'' (class {1}) does not inherit from class {2}. | 
|  |  | 
|  | ComponentSpecification.duplicate-asset={0}: already contains asset ''{1}''. | 
|  | ComponentSpecification.duplicate-component={0}: already contains component ''{1}''. | 
|  | ComponentSpecification.duplicate-parameter={0}: already contains parameter ''{1}''. | 
|  | ComponentSpecification.duplicate-bean={0}: already contains bean definition for ''{1}''. | 
|  | ComponentSpecification.duplicate-property-specification={0}: already contains property specification for property ''{1}''. | 
|  |  | 
|  | ExtensionSpecification.duplicate-property={0}: already contains property configuration for ''{1}''. | 
|  | ExtensionSpecification.bad-class=Unable to locate class {0}. | 
|  |  | 
|  | Direction.IN=in | 
|  | Direction.FORM=form | 
|  | Direction.CUSTOM=custom | 
|  | Direction.AUTO=auto | 
|  |  | 
|  | # org.apache.tapestry.util | 
|  |  | 
|  | AdaptorRegistry.duplicate-registration=A registration for class {0} already exists. | 
|  | AdaptorRegistry.adaptor-not-found=Could not find an adaptor for class {0}. | 
|  |  | 
|  | JanitorThread.interval-locked=The interval for this janitor thread is locked. | 
|  | JanitorThread.illegal-interval=The interval for a janitor thread may not be less than 1 millisecond. | 
|  |  | 
|  | MultiKey.null-keys=Must pass in non-empty array of keys. | 
|  | MultiKey.first-element-may-not-be-null=First element of keys may not be null. | 
|  | MultiKey.no-keys=No keys for this MultiKey. | 
|  |  | 
|  | Pool.unable-to-instantiate-instance=Unable to instantiate new instance of class {0}. | 
|  |  | 
|  |  | 
|  | # org.apache.tapestry.util.io | 
|  |  | 
|  | DataSqueezer.short-prefix=The adaptor prefix must contain at least one character. | 
|  | DataSqueezer.null-class=The dataClass may not be null. | 
|  | DataSqueezer.null-adaptor=The adaptor may not be null. | 
|  | DataSqueezer.prefix-out-of-range=DataSqueezer prefix must be in the range ''!'' to ''z''. | 
|  | DataSqueezer.adaptor-prefix-taken=An adaptor for prefix ''{0}'' is already registered. | 
|  |  | 
|  | SerializableAdaptor.class-not-found=Class {0} not found. | 
|  | SerializableAdaptor.unable-to-convert=Cannot convert {0} into a modified Base64 character. | 
|  | SerializableAdaptor.unable-to-interpret-char=Cannot interpret ''{0}'' as a modified Base64 character. | 
|  |  | 
|  | ComponentAddressAdaptor.no-separator=Invalid ComponentAddress encoding -- separator not present | 
|  |  | 
|  | # org.apache.tapestry.util.prop | 
|  |  | 
|  | PropertyFinder.unable-to-introspect-class=Unable to instrospect properties of class {0}. | 
|  |  | 
|  | OgnlUtils.unable-to-update-expression=Unable to update expression ''{0}'' of {1} to {2}. | 
|  | OgnlUtils.unable-to-read-expression=Unable to read expression ''{0}'' of {1}. | 
|  | OgnlUtils.unable-to-parse-expression=Unable to parse expression ''{0}''. | 
|  |  | 
|  | # org.apache.tapestry.util.xml | 
|  |  | 
|  | AbstractDocumentParser.incorrect-document-type=Incorrect document type; expected {0} but received {1}. | 
|  | AbstractDocumentParser.unable-to-parse=Unable to parse {0}: {1} | 
|  | AbstractDocumentParser.unable-to-read=Error reading {0}: {1} | 
|  | AbstractDocumentParser.unable-to-construct-builder=Unable to construct DocumentBuilder: {0} | 
|  | AbstractDocumentParser.invalid-identifier={0} is not a valid identifier (in element {1}). | 
|  | AbstractDocumentParser.missing-resource=Resource at {0} does not exist. | 
|  | AbstractDocumentParser.unknown-public-id=Document {0} has an unexpected public id of ''{1}''. | 
|  |  | 
|  | RuleDrivenParser.no-rule-for-element=No rule is defined for parsing element ''{0}''. | 
|  | RuleDrivenParser.resource-missing=Unable to find resource {0}. | 
|  | RuleDrivenParser.unable-to-open-resource=Unable to open resource {0}. | 
|  | RuleDrivenParser.parse-error=Unable to parse {0}: {1} | 
|  |  | 
|  | # org.apache.tapestry.valid | 
|  |  | 
|  | FieldLabel.no-display-name=Display name not specified and not provided by field {0}. | 
|  | FieldLabel.must-be-contained-by-form=This component must be contained within a Form. | 
|  | FieldLabel.no-delegate=No IValidationDelegate is available to ValidField {0}; it is specified as the delegate parameter of Form {1}. | 
|  |  | 
|  | ValidField.no-delegate=No IValidationDelegate is available to ValidField {0}; it is specified as the delegate parameter of Form {1}. | 
|  | ValidField.must-be-contained-by-body=A ValidField using client-side validation must be enclosed by a Body component. | 
|  |  | 
|  | NumberValidator.unknown-type=Unknown value type {0}. | 
|  | NumberValidator.no-adaptor-for-field=Unable to provide validation for field {0} (value type {1}). | 
|  |  | 
|  | PatternValidator.pattern-match-error=Unable to match pattern {0} for field {1}. | 
|  |  | 
|  | # org.apache.tapestry.wml | 
|  |  | 
|  | Card.cards-may-not-nest=Cards may not be nested. | 
|  | Postfield.must-be-contained-by-go=This postfield must be contained within a Go. | 
|  |  | 
|  | # org.apache.tapestry.contrib.components | 
|  |  | 
|  | When.must-be-contained-by-choose=When component must be contained within a Choose. |