MM使用的技术堆栈中是否存在可以处理i18n for JS的东西?例如。需要javascript的内容:en.yml
和es.yml
文件中的部分,并将其作为translation.js
文件提供 - 或类似的内容(我只知道它有时是如何完成的在rails )。
Fwiw,https://github.com/fnando/i18n-js似乎是一种流行的rails解决方案。我猜这个JS的部分工作得很好。我只是不确定如何将构建过程集成到MM堆栈中,以便生成所有文件并最终到达正确的位置。
@tdreyno建议:目前不是,但看起来我们可以联系起来 链轮(JS)和I18n。
有没有人这样做过或者有关于如何继续的建议(对于那些在Ruby / Rails中获得但尚未在3.1资产路径中挖掘但又不怕尝试的人)。
答案 0 :(得分:1)
我正在考虑解决完全相同的问题。所以这是我的解决方案:
在source/layouts/layout.html.slim
:
javascript:
var I18n = {};
I18n.locale = 'fr';
I18n.translations = {};
I18n.translations['fr'] = #{I18n.backend.send(:translations)[:fr].to_json};
然后访问JS中的翻译就像这样简单:
I18n.translations.fr['menu']['glossaire']
#=> "Glossaire"
答案 1 :(得分:0)
caedes'解决方案简单易行,但在我的情况下,我希望能够使用一些i18n-js
更复杂的功能,如字符串插值,而不仅仅是拥有一组嵌套字典。
幸运的是,i18n-js
可以read in from a dictionary。我使用browserify安装了i18n-js
,并使用window.I18n = require('i18n-js');
全局导入,并添加了部分_i18n_js.slim
:
javascript:
I18n.translations = #{I18n.backend.send(:translations).to_json};
然后您可以使用优秀i18n-js
的所有功能。