Работает ли локализация приложения GWT, созданного с помощью UiBinder, в режиме хостинга? Это не для меня. Вот что я сделал:
1) Добавлены свойства локали в XML-модуль GWT
< inherits name="com.google.gwt.i18n.I18N" / >
< extend-property name='locale' values='en'/>
< extend-property name='locale' values='ru'/>
< set-property-fallback name="locale" value="en"/>
2) Сообщения с тегами в * .ui.xml файлах с
< ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
ui:generateFormat="com.google.gwt.i18n.rebind.format.PropertiesFormat"
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
ui:generateLocales="default"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
< g:HTMLPanel>
< ui:msg description="Hello Description">Hello!< /ui:msg>
< /g:HTMLPanel>
< /ui:UiBinder>
3) Добавлена опция компилятора GWT -extra
4) Скомпилировал проект. Найдены файлы с суффиксом .GenMessages.properties в дополнительной папке.
5) Локализованные сгенерированные сообщения. Скопировал каждый файл .GenMessages.properties в одну папку с соответствующим файлом .ui.xml. Переименовал его с моим языком в имени файла, например,
.GenMessages_en.properties
.GenMessages_ru.properties
6) Перекомпилировал проект.
7) Запустил приложение и изменил переменную локали в URL для проверки, например
http://127.0.0.1:8888/TestLocale.html?gwt.codesvr=127.0.0.1:9997&locale=ru
По-прежнему отображается английская версия ресурсов по умолчанию.
Что мне не хватает? Как я могу даже отладить это? В логах или на выходе ничего нет.
Я под Windows, использую IntelliJ IDEA и Chrome в качестве браузера.
Спасибо!
Обновление: Это не сработало, потому что у меня были дополнительные < set-property name="locale" value="en"/ >
в конфигурации модуля :( Возможно, это были переопределения значений из тега extend-property
.
Я написал пошаговое описание, как заставить это работать здесь на случай, если кому-то будет интересно.