GWT SafeHtmlTemplate国际化
我正在国际化我的gwt应用程序,我有几个SafeHtmlTemplate,我正在使用,我不知道如何翻译。有没有一种方便的方式来翻译这些,同时仍然使用SafeHtmlTemplate
方法?否则,我是否会像往常一样将星期几的名称传递给模板并使用Constants
来翻译它们?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);
既然没有办法用一个模板,像你这样有UiBinder
模板里面做的一个Constants
对象,我会说你获得了翻译的字符串模板外,然后将它们作为参数将是方法下一个更容易的选择。
此外,它提到的时间,并再次全部通过用于建立SafeHtml
对象的字符串必须在编译时已经确定的GWT的SafeHtml
文档:
public interface SafeHtmlTemplates
促进编译时的标签界面绑定HTML模板以生成SafeHtml字符串。
public static SafeHtml fromSafeConstant(java.lang.String s)
返回一个由安全字符串构造的SafeHtml,即不会转义字符串。
重要提示:为使此方法能够遵守SafeHtml合同,此方法的所有用途必须满足以下约束条件:
1.参数表达式必须在编译时间的处完全确定。
2.参数的值必须以“内部HTML”上下文结束,并且不包含不完整的HTML标记。
使用Constants
模板内部的SafeHtml
模板可能会干扰此规则。有人可能会争辩说,所有常量都被内联,并且已经在编译时生成了代码的国际化排列,所以在模板内使用常量时应该相对容易地克服这些限制;但是再一次,谷歌可能已经以一种不允许两种机制安全混合的方式实施它,因此限制。
所以只需将翻译的字符串作为参数传递(可能)的方式。