2011-07-14 6 views
4

私はrails 3.1( "first_name")でアクティブレコード属性名をカスタマイズ(変換)しようとしています。ここに私のロケールファイル(設定/ロケール/ sv.yml)の始まりです:Rails 3.1はモデル属性名を翻訳します

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

私は、ファイルの作品にさらに下の翻訳を変更するので、このファイルはレールによって使用されていることを確認しています。 はここで「Förnamn」ではない「姓」と言うべきでフォームフィールドのerbコードです:

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

Employee.human_attribute_name(:first_name)を実行しているレールコンソールで「姓」を返します。 ありがとう非常にありがとう

+0

アプリの設定ファイルでロケールを変更しましたか? – apneadiving

+0

はい、私はそのymlでさらに翻訳されており、私はそれらが動作していることがわかります。ここにファイル全体があります:http://pastebin.com/7qaZaE1z – Baversjo

+0

翻訳を変更するとページに反映されるので(エラーメッセージなど)、この特定のファイルが使用されていると確信しています。 – Baversjo

答えて

1

私は自分の属性がファイルの先頭で上書きされたsv.yml翻訳ファイルで2回定義されたactiverecordエントリを持っていることに気付きました。それは今働く。 Railsの3.1に

7

あなたにも、このようにそれを行うことができます。

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

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

このアプローチはORMとらわれないで、(例えばmongoid付き)アクティブなモデルのために正常に動作します。

関連する問題