2

我正在使用标准 Rails I18n API来本地化我们的一些视图。这工作得非常好,但我们现在有一些用于区域更改的用例en

API指南提到这不直接支持,应该使用其他插件。但是,我想知道是否有更简单的方法可以做到这一点。

我已经有了en.yml,所以理论上我可以创建它们en-AU.ymlen-US.yml它们是有效的克隆,en.yml但应用了一些区域更改。然后,我可以在我们的配置中添加附加选项English - AmericanEnglish - Australian选项,这些选项将映射到新的特定于区域的语言环境,并允许用户使用特定于区域的语言环境。

我能想到的唯一问题是它不干燥——我会对所有常见的英语单词都有重复的翻译。我看不出解决办法。

这种方法还有其他缺点吗,还是我应该硬着头皮转而使用 Globalize2 等插件之一?

4

3 回答 3

6

rails-i18n-translation-inheritance-helper 现在有点老了,所以这是我对 Rails 3.2 项目的方法。

如果你将 en-US 和 en-AU 保存在同一个 en.yml 文件中,你可以使用 yml 重复节点来拥有一个 super en 部分:

例如:

    en: &en
      errors:
        messages:
          expired: "has expired, please request a new one"
          not_found: "not found"

    en-US:
      <<: *en

    en-AU:
      <<: *en
      errors:
        messages:
          not_found: "tis not found"
于 2013-01-16T00:31:49.390 回答
2

我正在为此使用翻译继承帮助插件

于 2010-06-07T23:58:44.240 回答
2

在较新版本的 Rails/i18n 中,他们添加了一个后备功能。translation inheritance helper与过时的gem类似的工作

有关更多信息,请参阅此答案:如果缺少翻译,则回退到默认语言

于 2013-03-12T12:10:08.367 回答