Vaadin и пользовательский виджет Gwt - установка языка для виджета

У нас есть приложение vaadin и пользовательский виджет gwt, включенный как внешний jar. Виджет имеет собственные переводы (польский и английский). Проблема в том, что при запуске пользовательского виджета во внешнем приложении он правильно переводится, но когда он находится внутри приложения vaadin, независимо от локали приложения (и даже браузера) - он всегда только на английском языке.

Вопрос в том, как пользовательские виджеты gwt получают информацию об используемом языке и есть ли возможность переопределить это (принудительно установить язык/язык виджета)?


person Invader    schedule 05.08.2015    source источник
comment
Можете дать ссылку на этот виджет? Это общедоступно? Вы пробовали метод setLocale для компонента?   -  person kukis    schedule 07.08.2015
comment
К сожалению, я не могу опубликовать этот виджет. Я попытался установить метод setLocale для компонента vaadin, окружающего этот виджет, но это не помогло. Проблема в том, что если локаль vaadin является методом на стороне сервера, она может изменить данные, отправляемые клиенту. Виджеты GWT, о которых мы говорим, похожи на полноценное приложение gwt, помещенное внутрь компонента vaadin. При публикации в качестве отдельного веб-сайта он принимает переводы из локали (параметр по умолчанию или GET). Находясь в виджете vaadin, он вообще не заботится о локали браузера, теге языка запроса или параметре GET.   -  person Invader    schedule 15.08.2015


Ответы (1)


Одной из проблем было несоответствие имени локали. Где приложение vaadin можно было перевести только для локали языкового тега. например "pl" (польский), для виджета gwt требуется локаль с кодом страны, например. "pl_PL" (польский, Польша).

Фактическое решение состояло в том, чтобы заставить gwt искать локаль только в метатеге и создавать этот тег.

<meta name="gwt:property" content="locale=x_X" />

на стороне сервера, соблюдая язык приложения и до того, как будут прикреплены какие-либо gwt javascripts. К сожалению, это приводит к обновлению страницы после смены языка, но я думаю, что это невозможно сделать по-другому из-за методов интернационализации gwt.

person Invader    schedule 30.09.2015