我有一个型号产品::汽车。我该如何翻译其属性?
我已经尝试过这个:
activerecord:
models:
products:
car: "Автомобиль"
attributes:
products:
car:
owner: "Владелец"
而且:
activerecord:
models:
products_car: "Автомобиль"
attributes:
products_car:
owner: "Владелец"
但如果我尝试使用Products :: Car.model_name.human,它仍然会说“Car”。我的其他翻译工作得很好,语言设置为:ru。
答案 0 :(得分:102)
我检查了'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
答案 1 :(得分:0)
从rails 3.2.12开始,它似乎被转换回来了:
activerecord:
models:
products:
car: "Автомобиль"
attributes:
products:
car:
owner: "Владелец"
products/car: "Автомобиль"
不再有效了