代码之家  ›  专栏  ›  技术社区  ›  Olly

使用rails i18n支持不同的区域

  •  1
  • Olly  · 技术社区  · 14 年前

    我正在使用 standard Rails I18n API 使我们的一些观点本土化。这真的很有效,但是我们现在有一些用例可以对 en 现场。

    这个 API guide 提到这不是直接支持的,应该使用其他插件。然而,我想知道是否有一个更简单的方法来做到这一点。

    我已经拥有 en.yml 所以理论上我可以创造 en-AU.yml en-US.yml 它们实际上是 恩尼尔 但随着一些地区性的变化。我可以再加一个 English - American English - Australian 我们的配置选项将映射到新的特定区域设置,并允许用户使用特定区域设置。

    我能想到的唯一问题是,它并不干燥——我会对所有常见的英语单词进行重复翻译。我找不到解决这个问题的方法。

    这种方法还有什么其他的缺点吗,或者我应该咬紧牙关,深入研究一个插件,比如globalize2?

    3 回复  |  直到 12 年前
        1
  •  2
  •   Alex Korban    14 年前
        2
  •  6
  •   PrototypeAlex    12 年前

    rails-i18n-translation-heritance-helper现在有点老了,下面是我对rails 3.2项目的方法。

    如果将en-us和en-au都保存在同一en.yml文件中,则可以使用yml repeated节点具有超级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"
    
        3
  •  2
  •   Community CDub    7 年前

    在新版本的rails/i18n中,他们添加了一个回退功能。类似于过时的作品 translation inheritance helper 宝石

    有关详细信息,请参阅此答案: Fall back to default language if translation missing