ruby-on-rails - 使用 Rails i18n 支持不同的语言环境区域

标签 ruby-on-rails localization internationalization globalize2

我正在使用 standard Rails I18n API本地化我们的一些观点。这确实运作良好,但我们现在有一些用于对 en 语言环境进行区域更改的用例。

API guide提到不直接支持此功能,应使用其他插件。不过,我想知道是否有更简单的方法来执行此操作。

我已经有了 en.yml,所以理论上我可以只创建 en-AU.ymlen-US.ymlen.yml 的有效克隆,但应用了一些区域更改。然后我可以在我们的配置中添加额外的 English - AmericanEnglish - 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/

相关文章:

ruby-on-rails - 在 ruby​​/rails 中使用 gmail gem 的附件字符编码问题

sql - Rails LIKE - 查询无法正常工作

c++ - C++ wchar_t 和 wstrings 的 "wrong"是什么?宽字符有哪些替代方案?

javascript - 带有 Angular 平移的 ng-repeat

java -//$NON-NLS-后面的数字是什么意思

javascript - 使用 webpack 的 ng2-translate 中未加载 JSON 文件

ruby-on-rails - Rails服务器需要很长时间才能启动

jquery - 与使用 jquery 在此表中追加相反

vb.net - 如何在 VB.NET 中单击按钮切换表单语言?

php - 如何获取当前语言环境一周的第一天? (PHP/L8N)