我正在尝试根据触发某些 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 ";
并试图在 JS 中获取 gem 文档中提供的代码的语言环境。
var fo = I18n.currentLocale();
alert(fo);
但是,它不起作用。
知道为什么吗?