2012-11-05 4 views
7

i18nシステムを使用してレールフォームを翻訳したいと思っています。Rails - フォームアクションでモデル名を変換する

私のモデル属性は正しく翻訳されていますが、送信アクションを翻訳したいときは、モデル名は翻訳されません。ここで

は私fr.ymlロケールファイルが

fr: 
    activerecord: 
    model: 
     character: 
     one: "Personnage" 
     other: "Personnages" 
    attributes: 
     character: 
     name: "Nom" 
     title: "Titre" 
     biography: "Biographie" 
    helpers: 
    submit: 
     update: "Mise à jour %{model}" 

である私の_form.html.erbは私のフォームで

<%= form_for(@character) do |f| %> 
    <% if @character.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@character.errors.count, "error") %> prohibited this character from being saved:</h2> 

     <ul> 
     <% @character.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
    <%= f.label :title %><br /> 
    <%= f.text_field :title %> 
    </div> 
    <div class="field"> 
    <%= f.label :biography %><br /> 
    <%= f.text_area :biography, :rows => 8%> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

ですが、私は更新ボタンが「三瀬àジュールであることが予想Personnage "がありますが、まだ" Miseàjour キャラクター "があります。

ありがとうございました!

答えて

10

が見える...のform_forタグで使用された場合...それは代わりに「更新#{Model.name}」の更新文字が表示されます送信ボタンのデフォルトの動作ですa modelここにはmodelsが必要です。

はこのようにあなたfr.ymlを変更

fr: 
    activerecord: 
    models: 
     character: 
     one: "Personnage" 
     other: "Personnages" 
    ... 

は詳細についてはTranslations for Active Record Models上のレールの国際化のドキュメントを参照してください。

+1

これです!ご助力ありがとうございます ! –

+1

大歓迎です!私はこれまでに自分でこの間違いを犯しました。 –

+1

私はこの問題に遭遇しました。あなたのモデルが直接 'ActiveModel'を使用しますが、代わりに' ActiveModel.models.character'を使用してください。 –

1

これはあなたが持っているよう

関連する問題