Мы определяем все наши интернационализированные константные строки в одном файле свойств LocalizableResource_xx.properties
(по одному на язык), расположенном в google.gwt.i18n.client
.
Таким образом, можно получить доступ к константам в Java-коде через интерфейс констант
Window.alert(myConstants.helloWorld());
а также использовать их внутри UiBinder .ui.xml
<ui:attribute key="some.key" name="text" description="useful info" />
Этот подход не работает, если строка содержит одиночную кавычку ('
). Это связано с тем, что компилятор GWT генерирует java.text.ParseException: Unterminated single quote:
при обработке файлов .ui.xml
. Если мы избежим цитаты, что означает double it (''
), компилятор проходит, но строки, к которым обращаются через постоянный интерфейс, содержат как одинарные кавычки (например, в You can''t do that
).
Замена одинарных кавычек на кодировку utf-8\u0027 не помогает (такое же исключение, как указано выше).
Можно ли использовать один и тот же файл свойств в шаблонах UiBinder, а также в Java-коде, не сталкиваясь с раздражающими проблемами с одиночной кавычкой?