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