Products::Car というモデルがあります。その属性を翻訳するにはどうすればよいでしょうか?
私はすでにこれを試しました:
activerecord:
models:
products:
car: "Автомобиль"
attributes:
products:
car:
owner: "Владелец"
この:
activerecord:
models:
products_car: "Автомобиль"
attributes:
products_car:
owner: "Владелец"
しかし、Products::Car.model_name.human を使用しようとすると、依然として「Car」と表示されます。他の翻訳は正常に機能し、言語は :ru に設定されています。
ベストアンサー1
'model_name.human' ソースコードをチェックし、 'i18n_key' メソッドを見つけました。これを試しました:
irb(main):006:0> Products::Car.model_name.i18n_key
=> :"products/car"
次に、yml ファイルを次のように変更しました。
activerecord:
models:
products/car: "Автомобиль"
attributes:
products/car:
owner: "Владелец"
そしてそれは機能します!
編集:
さらに詳しい情報: は、i18n_key
の初期化子で設定されます。ActiveModel::Name
https://github.com/rails/rails/blob/375a4143cf5caeb6159b338be824903edfd62836/activemodel/lib/active_model/naming.rb#L147
それは単純に
MyClass.name.underscore