我正在尝试使用动态字符串i18n将使用GWT UI Binder运行的应用程序国际化。 UI绑定器是否支持动态字符串i18n?请告诉我这是否可行。
答案 0 :(得分:1)
UiBinder模板可以标记为本地化。你用的是
<ui:msg>
和<ui:attribute>
元素表示哪些部分 应该翻译模板,然后提供属性文件 构建应用时的消息的本地化版本。 More关于它
<强>更新强> 看到这个GWT Dynamic String Internationalization,我想你可以从那里找到解决方案。
答案 1 :(得分:0)
要回答您的问题 - 是,UI Binder支持i18n 。请参阅可用文档here和here。为了支持我的主张,这里是直接引用:
UiBinder ......直接支持国际化,与GWT的i18n设施配合良好;
您只需使用指定的语言环境制作一些* .properties文件,在gwt-xml中启用i18n模块,创建一个接口,可以在Java代码和ui-xml文件中访问方法(返回String)。
答案 2 :(得分:0)
我们使用Dictionary完成了这项工作。基本上,您使用动态主机页面(例如jsp)在主机页面中动态创建常量。要在UiBinder中使用它们你几乎没有选择,但最直接的是围绕字典创建包装类,例如
package org.gwt.dictionary.test
public class CurrentTheme {
Dictionary theme = Dictionary.getDictionary("CurrentTheme");
public String highlightColor() {
return theme.get("highlightColor");
}
public String shadowColor() {
return theme.get("shadowColor");
}
public String errorColor() {
return theme.get("errorColor");
}
public String errorIconSrc() {
return theme.get("errorIconSrc");
}
public String errorLabel() {
return theme.get("errorLabel");
}
public String someTextContent() {
return theme.get("someTextContent");
}
}
然后你可以在gwt.xml中使用它,就像这样
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:with field="themeConstants" type="org.gwt.dictionary.test.CurrentTheme"/>
<g:HTMLPanel>
<g:Label text="{themeConstants.errorLabel}" styleName="{themeConstants.errorColor}"/>
<div class="aler alert-info"><ui:text from="{themeConstants.someTextContent}"/></div>
</g:HTMLPanel>
</ui:UiBinder>
希望有所帮助