Если вы хотите локализовать большие куски кода и контента, вы можете просто использовать партиалы. Частично соблюдаются соглашения I18n, а также представления и шаблоны.
# app/views/about.html.erb
<%= render :partial => 'about_contents' %>
# app/views/_about_contents.en.html.erb
<h1>About us</h1>
<p>Some large content...</p>
# app/views/_about_contents.fr.html.erb
<h1>A propos</h1>
<p>Un contenu quelconque...</p>
Для ярлыков, небольших текстов, форматов даты и т. Д. Вы можете продолжать использовать I18n.t
/ файлы локали.
ОБНОВЛЕНИЕ:
Если локализуемый контент содержит код форматирования, вы также можете использовать content_for
, чтобы получить текстовое содержимое из вашего частичного фрагмента и избежать дублирования кода для макета и общих разметок.
# app/views/about.html.erb
<%= render :partial => 'about_contents' %>
<div class="whatever">
<p><%= yield :content_one %></p>
</div>
</div class="whatever_two">
<p><%= yield :content_two %></p>
</div>
# app/views/_about_contents.en.html.erb
<% content_for :content_one do %>
Some large content...
<% end %>
<% content_for :content_two do %>
Some other large content...
<% end %>
# app/views/_about_contents.fr.html.erb
<% content_for :content_one do %>
Un contenu quelconque...
<% end %>
<% content_for :content_two do %>
Un autre contenu quelconque...
<% end %>