【发布时间】:2012-08-06 18:43:21
【问题描述】:
我希望能够将骨干网 + Handlebars 应用程序国际化,但我不清楚最好的方法是什么。是否有任何将主干 + Handlebar 视图国际化的特定最佳实践?
在服务器端,我使用 SpringMVC 并且可以访问标准的 java 国际化工具。
【问题讨论】:
标签: spring-mvc backbone.js localization internationalization handlebars.js
我希望能够将骨干网 + Handlebars 应用程序国际化,但我不清楚最好的方法是什么。是否有任何将主干 + Handlebar 视图国际化的特定最佳实践?
在服务器端,我使用 SpringMVC 并且可以访问标准的 java 国际化工具。
【问题讨论】:
标签: spring-mvc backbone.js localization internationalization handlebars.js
这里有一些非常好的关于客户端国际化的资源。
http://2012.jsconf.eu/speaker/2012/08/28/client-side-internationalization.html 非常值得一看,它很好地解释了国际化问题,并且专注于 java 脚本。
http://alexsexton.com/blog/2012/03/the-ux-of-language/关于国际化的好文章
用于国际化的 JavaScript 库:
标准:
【讨论】:
目前我正在使用具有(非常有限的)国际化的应用程序,我将一个对象与模型混合,然后将其发送到 Backbone.Marionette.Renderer.render 函数中的模板。如果你有一个类似的中心函数来呈现你的模板(我假设你有),你可以在那里执行这个逻辑。例如,您可以在命名空间中混合国际化内容(预先选择的语言),例如
data = _.extend(model, {t: translations(:dutch))
留下如何从后端到前端的翻译,但我对 SpringMVC 的了解还不够,无法就此提供建议。
【讨论】:
我们在 Require/Backbone/Handlebars 应用程序中使用 i18next (http://i18next.com),效果非常好。它支持复数和上下文形式,并且有从 PO 到 JSON 的转换器,反之亦然。 (PO 在这里被广泛用于翻译。)文档很干净并且有很多有用的例子。
可以在 Handlebars 中使用静态键(字符串)或动态变量。您必须设置自己的 Handlebars 助手,但 i18next 的文档为此提供了示例代码。
在这篇文章中,我添加了更多实现细节: https://stackoverflow.com/a/17728920/621690
【讨论】: