我正在使用 standard Rails I18n API本地化我们的一些观点。这确实运作良好,但我们现在有一些用于对 en
语言环境进行区域更改的用例。
API guide提到不直接支持此功能,应使用其他插件。不过,我想知道是否有更简单的方法来执行此操作。
我已经有了 en.yml
,所以理论上我可以只创建 en-AU.yml
和 en-US.yml
是 en.yml
的有效克隆,但应用了一些区域更改。然后我可以在我们的配置中添加额外的 English - American
和 English - Australian
选项,这些选项将映射到新的特定区域设置并允许用户使用特定区域设置.
我能想到的唯一问题是它不是 DRY——我会对所有常见的英语单词进行重复翻译。我看不出解决这个问题的方法。
这种方法还有其他缺点吗,还是我应该硬着头皮研究 Globalize2 等插件之一?
最佳答案
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"
关于ruby-on-rails - 使用 Rails i18n 支持不同的语言环境区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993963/