0

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

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

Спасибо!

ответ

3

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

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

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 
Смежные вопросы