Globalize3 многоязычная форма - PullRequest
6 голосов
/ 23 мая 2011

У меня проблема с отправкой нескольких языковых переводов для данных модели в одной форме. Например:

Почтовая модель:

translates :title

Как я могу опубликовать в «новом» виде действия, который содержит форму, чтобы я мог отправить свой заголовок, например, в: en locale и: fr locale?

Спасибо.

1 Ответ

5 голосов
/ 03 июня 2011

Вы можете взглянуть на https://github.com/alvarezrilla/batch_translations

В Rails 3 и globalize3 Мне пришлось изменить несколько вещей, чтобы он работал правильно.Измените все методы globalize_translations на простые переводы, удалите параметры proc.binding в @ template.concat и добавьте в свою модель

has_many :translations
accepts_nested_attributes_for :translations

Но все это работает.

Ваша форма должна выглядеть примерно такthis:

  <%= form_for(@category) do |f| %>
  <%= render "shared/error_messages", :target => @category %>
  <table class="zebra">
    <tbody>
      <%= f.globalize_fields_for(:fr) do |g| %>
        <tr>
          <td><%= t(:language).humanize %>: <%= t(:french).humanize %></td>
          <td></td>
        </tr>
        <tr>
          <td>
            <%= g.label :name, t(:name).humanize %><br/>
            <%= g.text_field :name %>
          </td>
        </tr>
        <tr>
          <td>
            <%= g.label :description, t(:description).humanize %><br/>
            <%= g.text_area :description, :rows => 40, :cols => 100, :class => "mceEditor" %>
          </td>
        </tr>
      <% end %>
      <%= f.globalize_fields_for(:en) do |g| %>
        <tr>
          <td><%= t(:language).humanize %>: <%= t(:english).humanize %></td>
          <td></td>
        </tr>
        <tr>
          <td>
            <%= g.label :name, t(:name).humanize %><br/>
            <%= g.text_field :name %>
          </td>
        </tr>
        <tr>
          <td>
            <%= g.label :description, t(:description).humanize %><br/>
            <%= g.text_area :description, :rows => 40, :cols => 100, :class => "mceEditor" %>
          </td>
        </tr>
      <% end %>
    </tbody>
  </table>
  <div class="actions">
    <%= f.submit :class=>'button' %> <%= yield :actions %>
  </div>
<% end %>

Если у вас возникнут дополнительные проблемы, я передам рабочую версию этого для Rails 3.

...