我有index.erb和index-de.erb文件,看到一个例子,在I18n.locale为:de的情况下,会渲染index-de文件,但是我尝试过这种方式,没有效果,并且我找不到任何关于这个问题的文档。所以这个方法是否实际可行?还是需要额外的插件来实现呢?
我有index.erb和index-de.erb文件,看到一个例子,在I18n.locale为:de的情况下,会渲染index-de文件,但是我尝试过这种方式,没有效果,并且我找不到任何关于这个问题的文档。所以这个方法是否实际可行?还是需要额外的插件来实现呢?
它们必须被命名为index.LOCALE.EXTENSION,例如对于de locale(I18n.locale),可以是index.de.erb或index.de.html.erb。
本地化已经内置于Rails 2.2中;您可能想要查看i18n screencast和/或guide。
编辑:特别是请查看指南的第3.3节“本地化视图”。简短的答案是正确的文件名为index.de.html.erb。
来自2022年(Rails 7)的声音。在Ruby on Rails中,具有特定语言环境的视图和局部视图会自动选择。
因此,当I18n.locale
设置为it
并渲染show
时,它将首先查找show.it.html.erb
而不是show.html.erb
。
当您拥有呈现多种语言的布局(例如CMS中发生的事情)时,您可以使用I18n.with_locale
临时更改语言环境:
<% I18n.with_locale(:it) do %>
<%= render(partial 'header') %>
<% end %>