我正在使用github.com/fnando/i18n-js gem 进行 JavaScript 翻译。我注意到当我查看页面的源代码并检查 translations.js 时,它会加载完整的翻译文件,即使该页面只使用一个翻译词。
知道 JavaScript 如何加载当前页面所需的翻译,而不是加载完整的文件。
我正在使用github.com/fnando/i18n-js gem 进行 JavaScript 翻译。我注意到当我查看页面的源代码并检查 translations.js 时,它会加载完整的翻译文件,即使该页面只使用一个翻译词。
知道 JavaScript 如何加载当前页面所需的翻译,而不是加载完整的文件。
你能做的最好的就是让 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 页面中加载您需要的翻译。所以接下来的挑战是组织好你的网页和翻译。
没有办法做到这一点!
translations.js 包含所有键的原因是 Rails 无法事先知道您想在 js 中使用哪些短语。
我自己做的一个 hack 是我不是手动/在资产编译时生成 translations.js,而是我手动创建它,只包含我需要的东西。这种方法当然有缺陷 - 如果您开始使用其他翻译,您将需要再次手动添加它们。
另一种可能性可能是遵循配置部分,并且: