On Tue, Apr 10, 2012 at 10:33 AM, Christoph Leiter
<[email protected]> wrote:
> Sorry, I think I didn't make myself clear enough.  I don't want to translate
> just the "Required" key for several languages.
>
> What I do is that I have several language specific text fields on the same
> page, e.g. new LangTextField("name", model, Language.ENGLISH), new
> LangTextField("name", model, Language.GERMAN). The user can enter the "name"
> field in many languages with the different LangTextFields. (This is the
> backend area. The user enters the texts in many languages and on the
> frontend the text in the correct language gets displayed.) Based on the
> language attribute of the text field a more specific "Required" key should
> be provided.
>
> The English properties files would look like:
> RequiredEN=Please enter the field ${label} in English
> RequiredDE=Please enter the field ${label} in German
>
> For German:
> RequiredEN=Bitte fuellen Sie das Feld ${label} in Englisch aus
> RequiredDE=Bitte fuellen Sie das Feld ${label} in Deutsch aus
>
> I don't think that can easily be achieved without overriding
> reportRequiredError() (or the hack I described).

Or by using your own custom IValidator instead of using
FormComponent#setRequired(true).

>
>
> Christoph
>
> Martin Grigorov (2012-04-10 09:40):
>
>> Hi,
>>
>> The current impl of this method is just: error(new
>> ValidationError().addKey("Required"));
>> I.e. it just adds an error for this field and later the i18n mechanics
>> will use 'Required' as a key to find the actual message in the
>> resource bundles.
>> So you can provide several bundles for the different languages and
>> provide custom value for this key.
>>
>> On Fri, Apr 6, 2012 at 12:37 PM, Christoph Leiter
>> <[email protected]>  wrote:
>>>
>>> Hi,
>>>
>>> currently FormComponent#reportRequiredError() is a private method. Could
>>> it
>>> be made protected to allow users to override the default implementation?
>>>
>>> My use case is that I have a custom implementation of TextField that is
>>> language specific. Instead of showing the user "Field X is required" I
>>> want
>>> to display "Field X in language L is required". Currently I have to
>>> override
>>> FormComponent#validate() and inline validateRequired() there just to be
>>> able
>>> to provide my own implementation of reportRequiredError(), which is quite
>>> cumbersome and brittle.
>>>
>>> But if there's another, better solution, which doesn't need to make the
>>> method protected, I'd be happy to hear it as well.
>>>
>>>
>>> Thanks
>>> Christoph
>>
>>
>>
>>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

Reply via email to