我正在使用github.com/fnando/i18n-js gem进行JavaScript翻译。我注意到当我查看源页面并检查translations.js时,它会加载完整的翻译文件,即使该页面只使用一个翻译单词。
任何想法JavaScript如何加载当前页面所需的翻译而不是加载完整的文件。
答案 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和: