8

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 %>

私のフォームでは、更新ボタンが「Mise à jour Personnage」であることを期待していましたが、まだ「Mise à jour Character」があります。

ご協力いただきありがとうございます !

4

2 に答える 2

12

modelあるべき場所があるようですmodels

fr.yml を次のように変更します。

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

詳細については、アクティブ レコード モデルの翻訳に関する rails i18n ドキュメント セクションを参照してください。

于 2012-11-05T12:44:36.033 に答える
1

これは、form_for タグで使用された場合の送信ボタンのデフォルトの動作です...「Update #{Model.name}」の代わりに更新文字が表示されます...

于 2012-11-05T12:08:36.957 に答える