On 11 Nov 2003, at 13:27, Sylvain Wallez wrote:


Jeremy Quinn wrote:

Dear All

I noticed that when you use something like :

    form.getWidget ("email").setValidationError (
        new ValidationError ("validation.email.inuse")
    );

then the i18n tag output by setValidationError() looks like this:

<i18n:text catalogue="woody">validation.email.inuse</i18n:text>


Note that you can also use the second constructor which specifies if the string is an i18n key or the final message, i.e.:
new ValidationError("Bad input!", false);

and new ValidationError("some.message.key", true);


:)


which means that any custom validation errors pretty much have to be kept in WoodyMessages which could well be inconvenient ....


Sure, you're right.

Is it really necessary for Woody to set the catalogue attribute in this situation?


I would say no, but I'm not very aware of the multicatalogue i18n features.

I got this pattern from the Woody Samples, the sitemap is set up to use the "OtherMessages" catalogue as default, with the WoddyMessages catalogue as fallback, though currently "OtherMessages" is empty.


Isn't it possible to specify no attribute and have the i18n transformer search all declared catalogues?

Yes, but .... when you use setValidationError the catalogue attribute is added automatically, I don't think there is a option to turn this off. I have not seen this i18n behaviour on any other bit of Woody.


I am using multiple catalogues, the supplied woody one, which unfortunately I now have to copy and modify with my messages output by setValidationError, and my Applications catalogues (sitemap default), where I put application-specific messages (I have several logical groups of forms, each in a separate sitemap, with their own message files).

One thing that is confusing, is that custom messages output like this:

<wd:assert test="password != firstname">
        <wd:failmessage>
                <i18n:text>validation.password.sameasname</i18n:text>
        </wd:failmessage>
</wd:assert>
        
only seem to work when the message is in my application catalogue.

While messages output like this:

form.getWidget ("email").setValidationError (
        new ValidationError ("validation.email.notfound", true)
);

only appear to work if the message is in the 'woody' catalogue.

BTW. Is there a plan to add a generic form validation message tag to woody? ie. not tied to a particular field widget.


A widget that would collect all error messages? IIRC, this has been discussed.

Collect?


Do you mean, collect from all widgets?
Or, collect all messages sent to the form widget (which does not currently accept them)?


Thanks

regards Jeremy



Reply via email to