0

请帮助...这是我第一次部署国际化 GWT 应用程序。我在“共享”源文件夹中有 3 个语言环境属性文件:

  • com.blabla.shared
    • 字符串常量.java
    • StringConstants.properties
    • StringConstants_fr.properties
    • StringConstants_es.properties

在开发模式下运行时,使用 '&locale=fr' 语法更改区域设置没有问题。但是,一旦我使用 Ant 构建并在 Tomcat 上部署,尝试执行相同操作时会出现 404 错误。

似乎属性文件没有正确插入到war文件中。谁能解释一下这些文件应该放在哪里以及是否需要做其他事情来链接它们?

非常感谢,黎明

4

2 回答 2

0

您是否尝试指定

<meta name="gwt:property" content="locale=fr">

在您的主机页面中(如此所述)?至少它对我有用。

于 2013-04-16T13:07:59.110 回答
0

正如 Boris 所说,这些本地化的属性文件(例如 StringConstants_fr.properties)实际上并没有部署到服务器本身。相反,GWT 使用这些文件(仅在 GWT 编译时)以 46903BA33EA6F7A2F0D44EC84020A45D.cache.html (MD5+.cache.html) 的形式编译特定的浏览器/区域设置排列。这些文件包含您的所有应用程序代码,以及嵌入其中的本地化字符串。对于要编译的每个浏览器/语言环境,您都将拥有这些排列文件之一。

例如:

<set-property name="user.agent" value="opera,safari,ie9,ie8,ie6,gecko1_8"/>
<extend-property name="locale" values="en"/>
<extend-property name="locale" values="es"/>

将为您提供 12 种排列(6 个浏览器,每个浏览器有 2 个语言环境)。您的战争文件中将有 12 个这样的 MD5+.cache.html 文件。您可以对本地化字符串文字执行快速文件搜索,以查看它确实嵌入在其中一个文件中。

此外,您在 WEB-INF/classes 目录中看到您的 StringConstants_fr.properties 文件这一事实是您的 Ant 构建和/或 eclipse 输出指令的产物。那些不应该在那里。它们不会伤害任何东西,但会在您的战争文件中增加不必要的体积。修改您的 Ant 构建以将它们保留在源目录中。

希望有帮助...

于 2013-07-27T20:04:17.360 回答