Rails错误消息中的翻译属性(Rails 2.3.2,I18N)
我在翻译文件中定义了翻译的属性和模型名称,Modelname.human_attribute_name(…)返回正确翻译的属性名称,但错误消息中的属性名称未翻译。 需要转换错误消息中的属性名称是什么?
从主题指南中 ,您需要使用模型名称和属性名称正确设置本地化文件:
en: activerecord: models: user: Dude attributes: user: login: "Handle"
由于这是YAML,请确保所有“标签”实际上都是两个软空间。 然后,您可以使用User.human_name
和User.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" %>
不显示翻译。