Rails:是否可以根据I18N显示不同的内容?

时间:2015-08-06 14:21:42

标签: ruby-on-rails internationalization

不只是文字。

例如,我可能希望在语言为中文时显示button,并在语言为英语时隐藏它。

我的想法:在controller中,通过视图使I18N可以访问,也许就像是 @I18n = I18n.locale

2 个答案:

答案 0 :(得分:2)

您始终可以使用I18n.locale检查当前区域设置的值。所以你可以把测试挂掉:

<% if I18n.locale =~ /^zh/ %>
  <!-- button code -->
<% end %>

请注意我在这里针对任何中国语言环境进行测试,其中所有语言都以&#34; zh&#34;

开头。

答案 1 :(得分:1)

选项1:检查控制器/视图中的区域设置(最好在控制器中)并有条件地渲染;

选项2:将按钮的HTML放在区域设置字典

# config/locales/zh-CN.yml
zh-CN:
  welcome_html: <button>欢迎</button>      
  goodbye:
    html: <button>再见</button>

来自官方文件:

带有'_html'后缀的键和名为'html'的键被标记为HTML安全。在视图中使用它们时,HTML将不会被转义。

在此处阅读更多内容:http://guides.rubyonrails.org/i18n.html