使用带有Bootstrap-Rails和Simple_Form的i18n

时间:2014-10-03 19:18:10

标签: ruby-on-rails twitter-bootstrap internationalization simple-form rails-i18n

我有一个名为Variable scaffolded的模型,其名称和描述为变量。其索引视图如下:

<%- model_class = Variable -%>
<div class="page-header">
  <h1><%=t '.title', :default => model_class.model_name.human.pluralize.titleize %></h1>
</div>
<table class="table table-striped">
  <thead>
    <tr>
      <th><%= model_class.human_attribute_name(:id) %></th>
      <th><%= model_class.human_attribute_name(:name) %></th>
      <th><%= model_class.human_attribute_name(:description) %></th>
      <th><%= model_class.human_attribute_name(:created_at) %></th>
      <th><%=t '.actions', :default => t("helpers.actions") %></th>
    </tr>
  </thead>
  <tbody>
    <% @variables.each do |variable| %>
      <tr>
        <td><%= link_to variable.id, variable_path(variable) %></td>
        <td><%= variable.name %></td>
        <td><%= variable.description %></td>
        <td><%=l variable.created_at %></td>
        <td>
          <%= link_to t('.edit', :default => t("helpers.links.edit")),
                      edit_variable_path(variable), :class => 'btn btn-default btn-xs' %>
          <%= link_to t('.destroy', :default => t("helpers.links.destroy")),
                      variable_path(variable),
                      :method => :delete,
                      :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
                      :class => 'btn btn-xs btn-danger' %>
        </td>
      </tr>
    <% end %>
  </tbody>
</table>

<%= link_to t('.new', :default => t("helpers.links.new")),
            new_variable_path,
            :class => 'btn btn-primary' %>

因此,它是一个标准的脚手架+使用Simple_form代码生成的Twitter_Bootstrap。

我想把它翻译成pt-BR和es但我真的不知道怎么做,因为它使用了model_class.human_attribute_name(:name)。 simple_form网站说(让我们说我翻译为en):

en:
  simple_form:
    options:
      user:
        gender:
          male: 'Male'
          female: 'Female

当我改变&#34;选项&#34;到&#34;属性&#34;,&#34;用户&#34;到&#34;变量&#34;等等......说实话,我甚至不知道翻译是否应放在simple_form.pt_BR.yml或新的pt-BR文件中。

任何帮助,在类似情况下使用的i18n的例子将非常感谢!

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将单个文件用于所有翻译或分成几个文件,这无关紧要。

我建议您为自己的翻译设置一个语言环境文件,如果使用其他gem,则不要修改simple_form(或其他语言环境文件)。这样,如果您更新simple_form gem,则可以使用新的翻译文件而不会丢失自己的翻译。

您的语言环境文件应如下所示:

es:
  simple_form:
    labels:
      variable:
        name: "Nombre"
        description: "Descripción"

一些准确性:

  • 模型的名称是单数
  • 你应该使用&#39;标签&#39;而不是&#39;选项&#39;。 &#39;选项&#39;用于翻译集合助手中的选项

希望得到这个帮助。