Локализованные сообщения JSR303 с GWT RequestFactory - PullRequest
0 голосов
/ 24 января 2012

Когда RequestFactory проверяет мои доменные объекты с помощью валидатора jsr303, он получает локализованное сообщение о нарушении и ключ сообщения. Я отлаживал код и на стороне сервера используется языковой стандарт по умолчанию независимо от того, какой языковой стандарт используется на стороне клиента. Я не нашел никаких настроек локали в полезной нагрузке.

Есть ли примеры, как обращаться с локализацией в сочетании с RequestFactory и BeanValidation? Должны ли сообщения быть переведены на стороне клиента или сервера? Каковы лучшие практики?

Спасибо!

1 Ответ

3 голосов
/ 25 января 2012

Я не нашел какой-либо светокопии для этой проблемы, поэтому я реализовал свой собственный механизм.Я добавил текущий выбранный язык в качестве атрибута в заголовок и на стороне сервера я читаю язык из заголовка.

Клиентская сторона:

MyRequestFactory factory = GWT.create(MyRequestFactory.class);
factory.initialize(new SimpleEventBus(), new DefaultRequestTransport() {

    @Override
    protected void configureRequestBuilder(RequestBuilder builder) {
        super.configureRequestBuilder(builder);
        builder.setHeader("X-GWT-Language",   
            LocaleInfo.getCurrentLocale().getLocaleName());
    }
});

Серверная сторона (Grails):

def index = {
    String gwtLanguage = request.getHeader("X-GWT-Language")
    if(gwtLanguage){
        Locale gwtLocale = new Locale(gwtLanguage)
        RequestContextUtils.getLocaleResolver(request).setLocale(request, response, gwtLocale)
    }
    // ... Handle the RequestFactory request
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...