6

同じフォーム内でモデル データの複数のロケール翻訳を送信することに関して問題があります。例えば:

投稿モデル:

translates :title

たとえば、:en ロケールと :fr ロケールの両方でタイトルを送信できるように、フォームを含む「新しい」アクション ビューに投稿するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

5

https://github.com/alvarezrilla/batch_translationsをご覧ください。

Rails 3 と globalize3 では、適切に動作させるためにいくつか変更する必要がありました。すべての globalize_translations メソッドを単純な翻訳に変更し、proc.binding パラメータを @template.concat に削除して、モデルに追加します

has_many :translations
accepts_nested_attributes_for :translations

しかし、それはすべて機能しています。

フォームは次のようになります。

  <%= 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 用にこれの作業バージョンをコミットします。

于 2011-06-02T20:32:29.320 に答える