我希望能够将骨干网 + Handlebars 应用程序国际化,但我不清楚最好的方法是什么。国际化骨干网 + Handlebar 视图是否有任何特定的最佳实践?
在服务器端,我使用 SpringMVC 并可以访问标准的 java 国际化设施。
我希望能够将骨干网 + Handlebars 应用程序国际化,但我不清楚最好的方法是什么。国际化骨干网 + Handlebar 视图是否有任何特定的最佳实践?
在服务器端,我使用 SpringMVC 并可以访问标准的 java 国际化设施。
这里有一些非常好的关于客户端国际化的资源。
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
函数中的模板。如果你有一个类似的中心函数来呈现你的模板(我假设你有),你可以在那里执行这个逻辑。例如,您可以在命名空间中混合国际化内容(预先选择的语言)
数据 = _.extend(模型,{t:翻译(:荷兰语))
留下如何从后端到前端的翻译,但我对 SpringMVC 的了解还不够,无法就此提供建议。
我们在 Require/Backbone/Handlebars 应用程序中使用 i18next ( http://i18next.com ),效果非常好。它支持复数和上下文形式,并且有从 PO 到 JSON 的转换器,反之亦然。(PO 在这里被广泛用于翻译。)文档很干净并且充满了有用的示例。
可以在 Handlebars 中使用静态键(字符串)或动态变量。您必须设置自己的 Handlebars 助手,但 i18next 的文档为此提供了示例代码。
在这篇文章中,我添加了更多的实现细节: https ://stackoverflow.com/a/17728920/621690