#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 /…