如何创建可翻译的成功通知?

ers*_*amy 3 ruby-on-rails internationalization ruby-on-rails-3

我正在尝试创建一个可翻译的成功通知.成功调用create和update动作将调用此通知.

这是我到目前为止:

#config/locales/en.yml
activerecord:
  models:
    place: "Place"
  successful:
    messages:
      created: "%{model} was successfully created."
      updated: "%{model} was successfully updated."

#app/controllers/places_controller.rb
def create
  ...
  format.html { redirect_to(@place, :notice => "#{t 'activerecord.successful.messages.created'}") }
Run Code Online (Sandbox Code Playgroud)

问题是这显示消息:"%{model}已成功创建.".我该怎么说:"地方成功创造了."?

Chr*_*ley 10

你需要使用i18n的插值函数(参见http://guides.rubyonrails.org/i18n.html#interpolation)做类似的事情

t('activerecord.successful.messages.created', :model => @my_newly_saved_object.class.model_name.human) 
Run Code Online (Sandbox Code Playgroud)

其中model_name返回所创建对象的类的名称(请参阅http://api.rubyonrails.org/classes/ActiveModel/Name.html).调用human此对象将返回模型名称的i18n转换(来自scope activerecord.models.{model_name})