2

我已经为 java、UI Binder 提供了 GWT 的 i18n 功能,并尝试为 i18n 提供纯的、非托管在 java HTML 文件中。

在阅读了“使用 UiBinder 进行声明式布局”之后,我实现了一些代码,但没有奏效:

<html xmlns:ui="urn:ui:com.google.gwt.uibinder">
<ui:with field='i18n' type='//.exampleConstants'/>
  <head>
   <title>Title of none-hosted HTML file and i18n part: <ui:text from='{i18n.title}'/></title>
 </head>
 <body>
  ...
 </body>
</html>

带有 id 的解决方案(在同一页面上描述:https ://developers.google.com/web-toolkit/doc/latest/tutorial/i18n/ )将由 RootPanel 获取,例如:

RootPanel.get("appTitle").add(new Label(constants.stockWatcher()));

也没有用,因为我的 HTML 文件没有与 Java 捆绑在一起。

如何在 HTML 文件中执行 i18n?

4

1 回答 1

1

好吧,这里有一个 Catch-22:HTML 文件不知道要使用哪个文本,直到从 Java 代码编译出来的 JavaScript 被加载,这是由页面完成的,所以在加载之后。

您必须使用标准的 Java Web 应用程序技术来国际化您的 HTML 页面,例如使其成为 JSP,并从Accept-Languages请求标头中检测首选语言。如果您这样做,则生成适当<meta name="gwt:property" content="locale=XX">的,以便 GWT 应用程序引导程序(.nocache.js文件)也不必猜测它,这可能导致 GWT 应用程序在与生成 HTML 的语言环境不同的语言环境中运行。

于 2012-06-11T10:39:29.220 回答