2

我正在尝试使我的Booking模型的属性国际化

从我的 fr.yml :

  attributes: &attributes
    booking:
      first_name: 'Prénom'
      last_name: 'Nom'
      email: "Email"
      phone: 'Téléphone'

  activemodel:
    errors:
      <<: *errors
    attributes:
      <<: *attributes

当我生成一个 rails 控制台时:

2.0.0p0 :011 > I18n.t(:activemodel)[:attributes][:booking]
 => {:first_name=>"Prénom", :last_name=>"Nom", :email=>"Email", :phone=>"Téléphone"}

但 :

2.0.0p0 :013 > Booking.human_attribute_name('first_name')
 => "First name"

但是,在我的网络服务器上,错误仍然是英语 + 法语,例如:

"名字 doit être rempli(e)"

我错过了什么?我正在使用 mongoid、ruby 2.0.0 和 rails 3.2.11。

请注意,我正在使用它model.errors.full_messages来检索错误消息。

4

1 回答 1

1

修复 :

mongoid:
  attributes:
    <<: *attributes

似乎即使Mongoid::Document包含ActiveModel::Validation,您也必须为翻译定义一个单独的键。

于 2013-03-11T13:23:04.647 回答