特定の 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 docs で提供されているコードを JS で取得しようとしました。
var fo = I18n.currentLocale();
alert(fo);
しかし、うまくいきません。
理由はありますか?