1

我正在使用standard Rails I18n API来本地化我们的某些视图。这工作得非常好,但我们现在有几个用于区域更改en语言环境的用例。使用Rails支持不同的区域设置区域i18n

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

我已经有en.yml,所以理论上我可以创建en-AU.ymlen-US.yml它们是有效的en.yml但随着应用的几个区域变化的克隆。然后,我可以将其他English - AmericanEnglish - Australian选项添加到我们的配置中,该配置将映射到新的特定于区域的区域设置,并允许用户使用区域特定的区域设置。

我能想到的唯一问题就是它不是干的 - 我会为所有普通的英文单词重复翻译。我看不到解决这个问题的办法。

这种方法还有什么其他的缺点吗?或者我应该只是咬紧牙关,而不是像Globalize2那样插入其中一个插件呢?

回答

6

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

如果你在同一个en.yml文件保持了en-US名称和en-AU可以使用YML重复节点有一个超级连接部分:

例如:

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"