GWT安全HtmlTemplate国际化

GWT安全HtmlTemplate国际化,gwt,Gwt,我正在国际化我的gwt应用程序,我有几个我正在使用的,我不知道如何翻译。在仍然使用SafeHtmlTemplate方法的情况下,是否有一种方便的方法来翻译这些内容?否则,我会像往常一样将一周中几天的名称传递给模板并使用常量翻译它们吗 @Template("<table>" + "<tr><td>Sunday:</td>{6}</tr>" + "<tr><td&g

我正在国际化我的gwt应用程序,我有几个我正在使用的,我不知道如何翻译。在仍然使用
SafeHtmlTemplate
方法的情况下,是否有一种方便的方法来翻译这些内容?否则,我会像往常一样将一周中几天的名称传递给模板并使用
常量翻译它们吗

    @Template("<table>" + 
            "<tr><td>Sunday:</td>{6}</tr>" +
            "<tr><td>Monday:</td>{0}</tr>" +
            "<tr><td>Tuesday:</td>{1}</tr>" +
            "<tr><td>Wednesday:</td>{2}</tr>" +
            "<tr><td>Thursday:</td>{3}</tr>" +
            "<tr><td>Friday:</td>{4}</tr>" +
            "<tr><td>Saturday:</td>{5}</tr>" +
            "</table>")
    SafeHtml hoursHtml(SafeHtml mon, SafeHtml tue, SafeHtml wed, SafeHtml thu, SafeHtml fri, SafeHtml sat, SafeHtml sun);
@模板(“+
“星期日:{6}”+
“星期一:{0}”+
“星期二:{1}”+
“星期三:{2}”+
“星期四:{3}”+
“星期五:{4}”+
“星期六:{5}”+
"")
安全HTML小时HTML(安全HTML周一、安全HTML周二、安全HTML周三、安全HTML周四、安全HTML周五、安全HTML周六、安全HTML周日);

由于无法像使用
UiBinder
模板那样在模板内使用
常量
对象,因此我认为,将翻译后的字符串置于模板外,然后将其作为参数传递是下一个更简单的选择

此外,GWT的
SafeHtml
文档中一再提到,用于构建
SafeHtml
对象的字符串必须在编译时确定:


一个标记接口,它有助于在编译时绑定HTML模板以生成安全的HTML字符串


返回由安全字符串构造的安全HTML,即不转义字符串。
重要提示:为了使此方法能够遵守SafeHtml合同,此方法的所有使用必须满足以下约束:
1.参数表达式必须在编译时完全确定 2.参数的值必须以“内部HTML”上下文结尾,并且不包含不完整的HTML标记

SafeHtml
模板中使用
常量可能会干扰此规则。
有人可能会说,所有常量都是内联的,代码的国际化排列已经在编译时生成,所以在模板内使用常量时,克服这些限制应该相对容易;但话说回来,谷歌可能以一种不允许安全混合两种机制的方式实现了它,因此存在局限性

因此,将转换后的字符串作为参数传递(可能)是一种方法