ActiveModel :: Errors翻译错误消息的属性部分?

时间:2013-10-02 13:58:23

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord activemodel

寻找解决方案如何在以下情况下在I18n yml文件中编写翻译记录:

class SomeClass < ActiveRecord::Base
  validate: stock_avail

  def stock_avail
    # errors is an instance of ActiveModel::Errors
    errors.add(:quantity, I18n.t('validation.stock_exceeded'))
    # how to write a translation for :quantity part ?
  end
end

errors.add记录在案here

我如何以及在哪里为错误消息的:quantity属性编写翻译?

感谢。

2 个答案:

答案 0 :(得分:0)

这是@zwippie 答案的插件...

<块引用>

现在我想知道自定义验证消息是否也可以存储在此文件中。

是的,它在 VectorizedRNG/errors 下,如下所示:

messages

所以 nl: activerecord: models: product: Product attributes: product: name: Naam quantity: Aantal errors: messages: stock_exceeded: voorraad overschreden # HERE 将是:

error.add

答案 1 :(得分:-1)

如果是关于模型的属性名称,则可以将翻译添加到config/locales/models/model_name/lang.yml

例如,config/locales/models/product/nl.yml的内容可能类似于:

nl:
  activerecord:
    models:
      product: Product
    attributes:
      product:
        name: Naam
        quantity: Aantal

现在我想知道自定义验证消息是否也可以存储在这个文件中。

另外,请将其添加到config/application.rb

# Load locale files in nested dictionaries
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]