Rails 3.1翻译模型属性名称

时间:2011-07-14 23:05:08

标签: ruby-on-rails internationalization

我正在尝试在rails 3.1(“first_name”)中自定义(翻译)活动记录属性名称。这是我的语言环境文件(config / locales / sv.yml)的开头:

"sv":
  activerecord:
    models:
      employee: "Anställd"
    attributes:
      employee:
        first_name: "Förnamn"

我确信这个文件是由rails使用的,因为在文件中进一步向下更改翻译。 这是表单字段erb代码,应该说“Förnamn”而不是“名字”:

  <div class="field">
    <%= f.label :first_name %><br />
    <%= f.text_field :first_name %>
  </div>

在rails控制台中运行Employee.human_attribute_name(:first_name)会返回“名字”。 非常感谢你

2 个答案:

答案 0 :(得分:7)

在Rails 3.1中你也可以这样做:

<% form_for @post do |f| %>
  <%= f.label :title %>
  <%= f.text_field :title %>
  <%= f.submit %>
<% end %>

en:
  helpers:
    label:
      post:
        title: 'Customized title'

这种方法与ORM无关,适用于活动模型(例如,使用mongoid)。

答案 1 :(得分:1)

我意识到我在我的sv.yml转换文件中定义了两次activerecord条目,我的属性被覆盖在文件的顶部。它现在有效。