Rails错误消息中的翻译属性(Rails 2.3.2,I18N)

我在翻译文件中定义了翻译的属性和模型名称,Modelname.human_attribute_name(…)返回正确翻译的属性名称,但错误消息中的属性名称未翻译。 需要转换错误消息中的属性名称是什么?

从主题指南中 ,您需要使用模型名称和属性名称正确设置本地化文件:

en: activerecord: models: user: Dude attributes: user: login: "Handle" 

由于这是YAML,请确保所有“标签”实际上都是两个软空间。 然后,您可以使用User.human_nameUser.human_attribute_name(:login)将它们取出。

我没有把它当作福音 – 可能有一个错误。 我测试了它,它工作正常。 我创建了一个名为Model ,带有属性title 。 这是config/locales中我的fr.yml文件的片段:

 fr: activerecord: models: model: "Sumfink" attributes: model: title: "Tiltile" 

这是相关的视图代码:

 

New <%= Model.human_name %>

<% form_for(@model) do |f| %> <%= f.error_messages %> <%= Model.human_attribute_name("title") %>
<%= f.text_field :title %> <%= f.error_message_on :title %> ...

以及正确翻译输出的屏幕截图: http : //screencast.com/t/et5FhVe1Gp

感谢Ian,只是想补充一下,为了在validation失败的情况下突出显示标签,你需要像这样写:

  <%= f.label "title", Model.human_attribute_name("title") %>

出于某种原因,写它就像:

  <%= f.label "title" %>

不显示翻译。