【问题标题】:translating model attributes rails翻译模型属性栏
【发布时间】:2015-06-26 01:10:38
【问题描述】:

我的 rails 应用程序出现以下问题: 我想翻译一些这样的模型属性,以便它们正确显示在验证错误消息中。

de:
  activerecord:
    models:
      account:
        attributes:
          email:
            one: 'Email'
            other: 'Emails'

现在我可以在 rails 控制台查看

I18n.t 'activerecord.models.account.attributes.email', count: 1

返回“电子邮件”,一切似乎都很好。

但是如果我去浏览器并发布一个表单,我会得到错误

I18n::InvalidPluralizationData in AccountsController#create
translation data {:attributes=>{:email=>{:one=>"Email", :other=>"Emails"}}} can not be used with :count => 1

我该如何解决这个问题? rails 期望获得哪些翻译数据?

谢谢

【问题讨论】:

    标签: ruby-on-rails internationalization translation pluralize


    【解决方案1】:

    模型名称和属性名称都有自己的 i18n 范围。

    试试

    activerecord.attributes.account.email
    

    而不是

    activerecord.models.account.attributes.email
    

    (并相应地调整您的 yaml 文件)。

    另请参阅方便的Rails Guide on the I18n API

    HTH!

    【讨论】:

      【解决方案2】:

      使用 Rails 辅助方法:

      Model.human_attribute_name(attribute)
      

      你的翻译 yaml 看起来像这样:

      activerecord:
        models:
          model_name:
            attributes:
              attribute: attribute name
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-14
        • 2016-07-20
        • 2014-09-26
        • 1970-01-01
        • 2010-12-20
        • 1970-01-01
        相关资源
        最近更新 更多