Ответ 1
Как насчет:
<set-property name="locale" value="en_GB" />
Наше приложение должно быть исправлено для использования локали eb-GB. На данный момент я добавил:
<extend-property name="locale" values="en_GB"/>
Но это означает, что GWT строит премудры для обоих. Как настроить GWT для eb-GB по умолчанию? Или как удалить default
из компиляции?
Как насчет:
<set-property name="locale" value="en_GB" />
<extend-property name="locale" values="sl_SI"/>
<set-property name="locale" value="sl_SI" />
сначала добавляет к множеству доступных локалей.
затем устанавливает значение по умолчанию.
Если значение по умолчанию не установлено в том же языке, что и добавленные, gwt будет строить перестановки для добавленного языкового стандарта и локали по умолчанию.
Я играю здесь археолога, но согласно GWT docs о интернационализации, вы должны использовать свойство fallback для "locale" вместо принудительного самой локали.
Итак, в вашем модуле XML (файл .gwt.xml
) вы должны:
<!-- Let say you app supports the english language, independent of country -->
<extend-property name="locale" values="en"/>
<!-- Now set the fallback locale so your app will be in british english by default, Sir -->
<set-property-fallback name="locale" value="en_GB"/>
<set-property name="locale" value="en_GB"/>
будет устанавливать только en_GB
в качестве языка вашего приложения и не будет создавать перестановку для других локалей, которые вы определили.
Надеюсь, что это поможет.
Вы можете установить значение по умолчанию с помощью аннотации: @DefaultLocale("en_GB")
на интерфейсах, расширяющих интерфейсы i18, например. com.google.gwt.i18.client.Messages
.
Например:
@DefaultLocale("en_GB")
public interface MyMessages extends com.google.gwt.i18.client.Messages {
...
Я не уверен, действительно ли это решает вашу проблему, но, похоже, это способ установить значение по умолчанию. См. Также http://code.google.com/p/google-web-toolkit/wiki/I18nAnnotations
См. this.
Вам нужно указать локаль на главной странице, например...
<meta name="gwt:property" content="locale=x_Y">
Вы также можете написать своего собственного поставщика услуг.
Вот лучший взлом (см. второй комментарий).
Обратите внимание, что имея только этот код
<set-property name="locale" value="en_GB" />
заставляет LocaleInfo.getLocaleNativeDisplayName(localeName)
возвращать пустую строку для языкового стандарта по умолчанию.