使用Rails i18n支持不同的区域设置区域

Oll*_*lly 1 localization ruby-on-rails internationalization globalize2

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

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

我已经拥有了en.yml,所以理论上我可以创建en-AU.yml并且en-US.yml有效克隆en.yml但是应用了一些区域变化.然后,我可以添加额外的English - AmericanEnglish - Australian选择,我们的配置这将映射到新的区域特定的语言环境,并允许用户使用特定的区域语言环境.

我能想到的唯一问题是它不是DRY - 我会翻译所有常见的英语单词.我无法看到解决这个问题的方法.

这种方法还有其他任何缺点吗,或者我应该咬紧牙关并潜入其中一个插件,例如Globalize2?

小智 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"
Run Code Online (Sandbox Code Playgroud)