Использование пользовательских локальных сообщений отдельно от локалей

#gwt #localization #internationalization

#gwt #локализация #интернационализация

Вопрос:

У нас возникли проблемы с настройкой функциональности GWT для I18N.

В настоящее время мы используем файл статических свойств для генерации наших интерфейсов, которые мы используем в коде. Помимо загрузки локалей по умолчанию, таких как «de» или «en» во время выполнения, мы также ищем способ загрузки пользовательских языковых файлов, зависящих от другого свойства (например, с именем «dist«).

Подробно:

В нашем .gwt.xml у нас оба свойства определены следующим образом:

 <extend-property values="de" name="locale"/>
<extend-property values="en" name="locale"/>
<define-property name="x.dist" values="dist1,dist2,dist3"/>
  

Теперь мы хотим иметь один языковой файл, который содержит все общие свойства, и для каждого дистрибутива и языка другие языковые файлы, которые могут содержать специальные значения.
Все эти интерфейсы также должны быть сгенерированы автоматически с помощью плагина maven gwt «i18nMessagesBundle«.

Мы уже пытались использовать интерфейс «SpecialLocalMessage», который расширяет все специальные интерфейсы dist, но мы не смогли заменить их в gwt.xml через "<replace-with>" потому что требуются классы, но не интерфейсы.

Видите ли вы какое-либо решение этой проблемы?

Комментарии:

1. <replace-with> будет выполняться только во время компиляции, тогда как maven goal I18nMessageBundle запускается до запуска компилятора и создает интерфейсы, которые будет использовать компилятор. Я не вижу никакого способа сделать то, что вы хотите, кроме как самостоятельно написать приложение типа I18NMessageBundle для создания интерфейсов, а затем вызвать его с пользовательской целью maven, которую вы запускаете перед компиляцией.

2. В качестве альтернативы вы могли бы попробовать использовать языковые подмножества, такие как en_US или en_UK (я думаю, ничто не мешает вам также использовать такие вещи, как en_dist1, en_dist2!), чтобы добавить дополнительные специальные значения поверх обычных значений en или de. Тогда вам не нужно было бы иметь свое пользовательское свойство, что значительно упрощает задачу.

3. Я также задавал этот вопрос в списке рассылки GWT и получил там хороший ответ. Просто хотел поделиться этим здесь снова: groups.google.com/d/msg/google-web-toolkit/nW9jL9tQuDI /…