Ruby on rails Rails-I18n:如何找到转换路径?

Ruby on rails Rails-I18n:如何找到转换路径?,ruby-on-rails,Ruby On Rails,我有一个带有“资源”的表格,我想翻译它。我在xx.yml中定义了翻译: xx: activerecord: models: user: email: "xx" 还尝试了“一个”和“另一个”的标签“电子邮件”。但我仍然有问题,无论是遇到: I18n::InvalidPluralizationData (translation data {:email=>"xxx"} can not be used with :count => 1): i

我有一个带有“资源”的表格,我想翻译它。我在
xx.yml
中定义了翻译:

xx:
  activerecord:
    models: 
      user:
        email: "xx"
还尝试了“一个”和“另一个”的标签“电子邮件”。但我仍然有问题,无论是遇到:

I18n::InvalidPluralizationData (translation data {:email=>"xxx"} can not be used with :count => 1):
  i18n (0.7.0) lib/i18n/backend/pluralization.rb:35:in `pluralize'
  i18n (0.7.0) lib/i18n/backend/base.rb:40:in `translate'
  i18n (0.7.0) lib/i18n.rb:158:in `block in translate'
  i18n (0.7.0) lib/i18n.rb:154:in `catch'
  i18n (0.7.0) lib/i18n.rb:154:in `translate'
  activemodel (4.2.5) lib/active_model/naming.rb:188:in `human'
  activemodel (4.2.5) lib/active_model/errors.rb:437:in `generate_message'
  activemodel (4.2.5) lib/active_model/errors.rb:449:in `normalize_message'
  activemodel (4.2.5) lib/active_model/errors.rb:300:in `add'
  ...
```


或者翻译不成功。

我相信您希望翻译用户模型上的
电子邮件
属性。在这种情况下,您需要:

xx:
  activerecord:
    attributes:
      user:
        email: "xx"

模型
键用于转换模型名称,而不是其属性。

不幸的是,没有简单的方法调试active record i18n集成。最简单的方法是导航到源代码,并在那里检查它正在寻找的翻译。它不是那么简单的主要原因是,它在内部创建了一个庞大的默认值列表,用于翻译。在您的情况下,这将更加激烈,因为它位于代码的完全不同部分(因为在生成类名而不是属性名时会出现错误)。您可以尝试调试它的一种方法是使用monkey patch I18n backend lookup方法打印翻译密钥,然后调用以前的实现。这方面有什么新闻吗?