3

I've searched a bit on the web but haven't really found a concrete solution to internationalize an application running ExtJS & Spring MVC. Currently (for testing), I define global javascript variables in the JSP's & assign the string literals using JSTL tags.

Has anyone had any success in coming up w/ a clear/clean/flexible solution on this?

Any thoughts are really appreciated. TIA.

4

3 回答 3

1

您应该在应用程序中翻译 3 种类型的字符串

  1. 您页面上的静态字符串-> 正如亚当所说,使用模板是个好主意。MVC 可以解决这个问题。因此,您将所有字符串保存在数据库或属性文件中。

  2. 发送到 Ext JS 的错误消息字符串 -> 这里有两种解决方案,或者允许 Ext JS 处理它们,所以这意味着在发送回复之前,在 MVC 上有加载翻译的 js 文件或添加翻译您的回复

  3. 必须翻译的数据库表中的值,例如汽车零件。在这种情况下,您将密钥保留在 car_parts 表中,并将翻译保留在属性文件或 db 中的翻译表中。

在我当前的应用程序中,我在 MVC 级别执行翻译,并将翻译保存在数据库中。优点是1.翻译逻辑是MVC的一个地方而不是拆分。2.您的翻译在一个地方,每当您在翻译中出现错误时,您不必发布新版本,您只需更新数据库,或者您在应用程序管理员上提供一个表格以自行完成。需要翻译表的备份!!!

于 2010-10-21T12:09:52.617 回答
0

这就是在我的应用程序中完成的方式,它使用 Pylons、Ext JS 和一个名为 Mako 的模板引擎。

我将 JavaScript 文件视为模板。我将每个类保存在一个单独的文件中,并使用我定义的函数require()来处理依赖关系。我的服务器处理这些模板,处理依赖关系,将它们连接在一起并压缩。这些模板包含对 gettext-like 函数“_”的调用,例如:

window.setTitle("${_('My title')}");

这些模板是常规 Mako 模板,可以通过类似 gettext 的实用程序进行预处理以创建.po文件。我正在使用的.po生成器(Babel)将找到的字符串的位置作为注释放入.po文件中,这对我来说很方便,因为我知道字符串出现在哪里。

于 2009-03-25T11:48:20.590 回答
0

看一下Spring MVC Ajax 示例frpm Spring。如果您使用 JSP 视图,则可以使用 fmt 标记库和资源包。如果您使用 Velocity 视图,请按照 Spring文档中的说明使用 #springMessage('my.key') 。

于 2010-05-26T11:53:09.547 回答