使用i18n-js的Rails翻译问题

时间:2013-06-12 09:20:25

标签: ruby-on-rails rails-i18n i18n-gem

我正在使用github.com/fnando/i18n-js gem进行JavaScript翻译。我注意到当我查看源页面并检查translations.js时,它会加载完整的翻译文件,即使该页面只使用一个翻译单词。

任何想法JavaScript如何加载当前页面所需的翻译而不是加载完整的文件。

2 个答案:

答案 0 :(得分:4)

您可以做的最好的事情是让i18n-js生成多个翻译文件,每个文件只包含您需要的翻译子集。例如。从文档中看到这篇文章:

translations:
- file: 'public/javascripts/path-to-your-messages-file.js'
  only: '*.date.formats'
- file: 'public/javascripts/path-to-your-second-file.js'
  only: ['*.activerecord', '*.admin.*.title']

通过在HMTL页面中包含相应的文件,您只需在该HTML页面中加载所需的翻译。因此,接下来的挑战是如何组织您的网页和翻译。

答案 1 :(得分:0)

没有办法实现这一点!

为什么translations.js包含所有键的原因是Rails无法预先知道您希望在js中使用哪些短语。

我自己做的一个黑客是我没有手动/资产编译生成translations.js,而是我手动创建它只包含我需要的东西。这种方法当然有陷阱 - 如果你开始使用其他翻译,你需要再次手工添加它们。

另一种可能性可能是Configuration section和:

  • 将javascript中使用的所有转换放在一个键下
  • config i18n-js所以它只导出这个单键