我正在使用requireJS
和Jquery Mobile
,并且已经开始考虑将应用程序国际化的选项。
目前可用的语言(EN/DE/FR)是从数据库中提供的。当用户选择一种新语言时,我正在对当前页面设置jqm option
allowSamePageTransition=true
进行更改页面,它会重新获取页面并将其添加到DOM中(它在DOM中存在两次,但目前还可以。
由于应用程序最终应该离线工作,我想通过JSON/Javascript从数据库和存储/服务器中删除语言,因此切换语言会触发相同的事件,只是这次翻译将作为JSON提供,我正在客户端上构建东西。
我一直在尝试使用requireJS
提供的i18n
插件来实现这一点,虽然这非常容易设置,但当用户手动切换语言时,我不得不重新加载整个应用程序来显示新语言,这是不可能的。
问题:
我读过一些关于国际化的问题和建议的框架,但不确定该走哪条路,也没有真正找到任何替代方案。
考虑到这些:
-应该小而快
-需要与JQM一起工作
–应该使用JSON/.po文件我可以在服务器端构建下载并保存在缓存/本地存储中
--多个规则等都可以,但不是必须的
你建议用什么?你有什么经历?
感谢分享!
您可以看看http://i18next.com:
- 相当专业
- 附带requirejs支持
- 您可以使用JSON->,但有一个.mo/.po文件的转换器
- 适当复数
- 更多功能(上下文、字符串、插值、本地存储缓存等)
- 甚至有一个UI来翻译你的东西
- 应该与jqm一起运行
我们个人经常将其与backbone.js和handlebas模板引擎结合使用。但也适用于不同的设置。
我开始了i18next的工作,因为我对目前的情况不满意。大多数库都很复杂,或者不足以提供适当的本地化——所以我开始了i18next——这现在相当流行。