0

寻找一个解决方案如何编写翻译记录在以下情况下,阳明海运的I18n文件:ActiveModel ::错误翻译错误消息的属性部分?

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属性的翻译?

谢谢。

+0

你要翻译的属性名称“量”或错误消息?或两者? – zwippie

+0

正如问题中提到的':quantity'。来自第二个参数的消息翻译确实没有问题。 –

回答

0

如果是关于模型的属性名称,可以将翻译添加到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] 
+0

谢谢。如果确实有帮助,我会尝试并报告。 –

+0

不幸的是它不起作用。通过模型名称精确创建路径,将':quantity'放在yml树中,但没有任何影响。 –

+0

对不起,我忽略了这种方法的一个重要部分,即加载翻译文件。查看更新的答案。 – zwippie