Как я могу перевести атрибуты тега виджета в GWT UiBinder ui.xml файлы?

#gwt #internationalization #uibinder

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

Вопрос:

Я пытаюсь включить i18n для приложения GWT. Формы пользовательского интерфейса в этих приложениях описаны с помощью ui.xml файлы (с помощью UiBinder). Я прочитал это руководство http://code.google.com/intl/ru-RU/webtoolkit/doc/latest/DevGuideUiBinderI18n.html и был способен обрабатывать простые случаи, такие как < span >текст < /span>, который использовался как обычный html. Но я не могу решить, что мне делать с аргументами виджета, т.Е. < g:button text=»Save» /> Руководство предполагает вставить

 <ui:attribute name="text" description="Save"/>
<ui:msg description="Save">Сохранить</ui:msg>
  

внутри тега виджета.

Это приемлемо для виджета button, но неприемлемо для пользовательского виджета, который реализует интерфейс HasOneWidget. Когда я пытаюсь вставить и внутри такого виджета, я получаю ошибку компиляции, когда компилятор видит более одного дочернего элемента внутри тега виджета. Есть ли какой-либо способ перевести атрибуты тега виджета надлежащим образом?

В качестве обходного пути я могу передать идентификатор вместо реального текста в качестве атрибута, а затем вызвать некоторые Messages.resolveById(«сохранить»), который вернет «Сохранить», но это требует гораздо больше изменений и работы, чем ожидалось.

Ответ №1:

Наконец я нашел решение: используйте <ui:with> тег для указания класса сообщения, а не просто вставляйте {} в атрибуты.