我正在使用standard Rails I18n API来定位我们的一些观点。这非常有效,但我们现在有一些用于区域更改en
区域设置的用例。
API guide提到不直接支持,应该使用其他插件。但是,我想知道是否有一种更简单的方法可以做到这一点。
我已经有en.yml
,所以从理论上讲,我可以创建en-AU.yml
和en-US.yml
,它们是en.yml
的有效克隆,但应用了一些区域更改。然后,我可以在配置中添加其他English - American
和English - Australian
选项,这些选项将映射到特定于区域的新区域设置,并允许用户使用特定于区域的区域设置。
我能想到的唯一问题是它不是DRY - 我会翻译所有常见英语单词的翻译。我无法看到解决方法。
这种方法还有其他缺点吗,或者我应该咬紧牙关并潜入其中一个插件,例如Globalize2?
答案 0 :(得分:6)
rails-i18n-translation-inheritance-helper现在变得有点老了,所以这是我对Rails 3.2项目的方法。
如果将en-US和en-AU保存在同一个en.yml文件中,则可以使用yml重复节点来创建超级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"
答案 1 :(得分:2)
答案 2 :(得分:2)
在较新版本的Rails / i18n中,他们添加了一个后备功能。与过时的translation inheritance helper
宝石
请参阅此答案以获取更多信息:Fall back to default language if translation missing