我想根據觸發某些JS代碼的語言來製作IF語句。在.js.erb中處理I18n
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 %>
顯然,它的工作原理。但是,當我更改我的應用程序中的語言時,此代碼的行爲不會改變。它仍然觸發以前區域設置的代碼。
無論多少次我改變語言。它只會觸發我打開第一個窗口的區域設置的代碼。
這是爲什麼?我究竟做錯了什麼?
-------------------- UPDATE ------------
正如@tigrish建議我iinstalled i18n- js寶石。
我加入這個HAML我application.html.haml
:javascript
I18n.defaultLocale = " I18n.default_locale ";
I18n.locale = " I18n.locale ";
並試圖將語言環境中JS創業板文檔提供的代碼。
var fo = I18n.currentLocale();
alert(fo);
但是,它不起作用。
任何想法爲什麼?
你可能是正確的。但是,這可能適用於我。但其他用戶可能無法清除緩存以使其工作。因此,我猜想一個更好的系統。你如何說'讓它取決於區域'?謝謝 –
@SergioNekora當包含文件時,您可以將本地參數添加到文件中(就像rails爲了在部署新版本資源時使緩存過期一樣)。 – marcgg
我可以嗎?我真的不知道該怎麼做。 –