1

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

知道 JavaScript 如何加载当前页面所需的翻译,而不是加载完整的文件。

4

2 回答 2

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 页面中加载您需要的翻译。所以接下来的挑战是组织好你的网页和翻译。

于 2013-06-12T14:35:39.173 回答
0

没有办法做到这一点!

translations.js 包含所有键的原因是 Rails 无法事先知道您想在 js 中使用哪些短语。

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

另一种可能性可能是遵循配置部分,并且:

  • 将 javascript 中使用的所有转换放在一个键下
  • 配置 i18n-js 所以它只导出这个单一的键
于 2013-06-12T09:57:01.163 回答