2012-11-05 12 views
7

Voglio tradurre un modulo di rotaie usando il sistema i18n.Rails - Traduci il nome del modello nelle azioni modulo

Gli attributi del mio modello sono tradotti correttamente, ma quando voglio tradurre le azioni di invio, il nome del modello non viene tradotto.

Ecco il mio file locale fr.yml

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

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

sulla mia forma, mi aspettavo che il pulsante di aggiornamento per essere "Mise à jour Personnage ", ma ho ancora" Mise à jour Personaggio ".

Grazie per il vostro aiuto!

risposta

10

Sembra che tu abbia a model dove si dovrebbe avere models.

Cambia la tua fr.yml a guardare come questo:

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

Vedi le rotaie sezione relativa alla documentazione i18n su Translations for Active Record Models per i dettagli.

+1

Questo è tutto! Grazie mille per il tuo aiuto ! –

+1

Sei il benvenuto! Ho già fatto questo errore prima. –

+1

Perché mi sono imbattuto in questo problema: se il tuo modello usa 'ActiveModel' ma non' ActiveRecord' direttamente (forse perché usi un mappatore dei dati), usa invece 'activemodel.models.character'. –

1

Questo è il comportamento predefinito del pulsante di invio quando viene utilizzato nel tag form_for ... mostrerà l'aggiornamento carattere invece di "Aggiornamento # {} Model.name" ...