2012-11-05 16 views
7

Chcę przetłumaczyć formularz szyn za pomocą systemu i18n.Szyny - Przetłumacz nazwę modelu w działaniach formularza

Moje atrybuty modelu są przetłumaczone poprawnie, ale gdy chcę przetłumaczyć przesłane akcje, nazwa modelu nie jest tłumaczona.

Oto mój plik 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}" 

Moja _form.html.erb jest

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

Na moim formularzu, spodziewałem przycisk aktualizacji być „Mise à jour Personnage ", ale nadal mam" Mise à jour Postać ".

Dzięki za pomoc!

Odpowiedz

10

Wygląda jak masz a model gdzie powinieneś mieć models.

Zmień fr.yml wyglądać tak:

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

Zobacz szyn i18n sekcji Dokumentacja na Translations for Active Record Models szczegóły.

+1

To jest to! Bardzo ci dziękuje za pomoc ! –

+1

Serdecznie witamy! Już wcześniej popełniłem ten błąd. –

+1

Ponieważ wpadłem na ten problem: jeśli twój model używa "ActiveModel", ale nie "ActiveRecord" bezpośrednio (być może dlatego, że używasz mapera danych zamiast tego), zamiast tego użyj "activemodel.models.character". –

1

Jest to domyślne zachowanie przycisku Prześlij, kiedy używane w tagu form_for ... pokaże Aktualizacja znak zamiast „Aktualizacja # {Model.name}” ...

Powiązane problemy