【发布时间】:2013-02-08 10:45:48
【问题描述】:
我正在尝试根据触发某些 JS 代码的语言来制作一个 IF 语句。
temp.js.erb
<% if I18n.locale.to_s == 'es' %>
someJScode;
<% elsif I18n.locale.to_s == 'en' %>
someJScode;
<% elsif I18n.locale.to_s == 'eu' %>
someJScode;
<% elsif I18n.locale.to_s == 'fr' %>
someJScode;
<% end %>
显然它有效。但是,当我更改应用程序的语言时,此代码的行为不会改变。它仍然会触发先前语言环境的代码。
无论我更改多少次语言。它只会触发我打开第一个窗口时使用的语言环境的代码。
这是为什么呢?我做错了什么?
--------更新------------
按照@tigrish 的建议,我安装了 i18n-js gem。
我将此haml添加到我的application.html.haml
:javascript
I18n.defaultLocale = " I18n.default_locale ";
I18n.locale = " I18n.locale ";
并尝试通过 gem 文档中提供的代码在 JS 中获取语言环境。
var fo = I18n.currentLocale();
alert(fo);
但是,它不起作用。
知道为什么吗?
【问题讨论】:
标签: javascript ruby-on-rails internationalization ruby-on-rails-3.2