как я могу сделать I18N динамическим в gwt?

я использую gwtp и хочу сделать I18N своего приложения gwt динамическим, я сделал что-то вроде пример демонстрации

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

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

спасибо,


person SKM    schedule 24.05.2012    source источник
comment
Мне кажется, что сайт-витрина перезагружается каждый раз при изменении локали. Посмотрите на строку запроса в URL-адресе. Что заставляет вас верить по-другому?   -  person Ian Jacobs    schedule 24.05.2012


Ответы (1)


GWT компилирует разные версии кода для каждого языка, чтобы пользователям не приходилось загружать все языки, когда им, скорее всего, нужны только свои собственные.

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

Для этого существует множество решений (интернационализация Google Javascript), ни одно из которых не связано с тем, как работает GWT, поскольку это не очень хорошая практика и не рекомендуется GWT.

Кстати, если вы имеете в виду, что просто хотите изменить локаль во время выполнения для тестирования, я надеюсь, вы знаете, что вы можете просто добавить параметр URL:

http://your-url?locale=de

(для немецкой локали)

person Renato    schedule 24.05.2012
comment
да, это совершенно другой способ и отличается от GWT, но все же мне нужно какое-то решение для этого. - person SKM; 25.05.2012
comment
Поскольку вы не можете использовать GWT для этого напрямую (если только вы не напишете некоторые виджеты и код, который делает это вручную), я бы рекомендовал JQuery. Для этого есть хороший подключаемый модуль: code.google.com/p/jquery- i18n-properties Попробуйте. - person Renato; 25.05.2012
comment
мое намерение состоит в том, чтобы просто прочитать файлы свойств на стороне сервера и получить данные файлов свойств, а затем мне нужно установить их в моем представлении на основе ключей. но я не понимаю как это сделать - person SKM; 28.05.2012
comment
Послушайте, есть 3 способа сделать это: с помощью GWT (который компилирует одну версию приложения для каждого языка, затем загружает в клиент только язык пользователя, но может изменить язык только путем повторной загрузки), с помощью реализуя его в JS статически (вы загружаете ВСЕ языки, затем вы можете быстро изменить язык в клиенте, не перезагружая приложение), или динамически извлекая текст (что позволит вам динамически менять язык без загрузки всего приложения, с большие недостатки в том, что его сложнее реализовать и в целом медленнее)... какой из них вы хотите?? - person Renato; 29.05.2012
comment
для нашего приложения мы думаем, что перезагрузка невыгодна, поэтому я хочу знать кое-что о третьем методе. - person SKM; 29.05.2012
comment
@krrish Я бы попробовал библиотеки JQuery, такие как i18next или i18n-properties. Интегрировать с ними GWT несложно. Но вам придется немного поработать, без этого никуда... - person Renato; 31.05.2012