Globalize3多种语言环境形式

lal*_*hii 6 ruby-on-rails internationalization globalize2 ruby-on-rails-3

我在为同一表单中的模型数据提交多个区域设置翻译时遇到问题.例如:

发布模型:

translates :title
Run Code Online (Sandbox Code Playgroud)

如何在包含表单的"新"操作视图中发布,以便我可以同时提交我的标题:en locale和:fr locale例如?

谢谢.

小智 5

您可以查看https://github.com/alvarezrilla/batch_translations

在Rails 3和globalize3上,我必须改变一些东西才能正常工作.将所有globalize_translations方法更改为简单翻译,将proc.binding参数移除到@ template.concat并添加到模型中

has_many :translations
accepts_nested_attributes_for :translations
Run Code Online (Sandbox Code Playgroud)

但它一切正常.

您的表单应如下所示:

  <%= 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 %>
Run Code Online (Sandbox Code Playgroud)

如果你有更多问题,我会为Rails 3提交一个有效的版本.