Ruby on rails - moment.js用I18n切换语言

时间:2016-08-10 10:47:05

标签: jquery ruby-on-rails internationalization momentjs

我有时使用momentjs-rails gem,我在2016-11 2116-11 1116-11 添加了西班牙语区域设置。我使用I18n宝石,当我切换应用程序的全球语言时,我无法切换javascripts/moment/es.js语言。

添加,moment以西班牙语显示,并添加; moment.locale('es');以英文展示,但它不会因I18n而改变。

我在application.js.erb

中尝试过
moment.locale('en');

但是<% if I18n.locale == :es %> moment.locale('es'); <% end %> <% if I18n.locale == :en %> moment.locale('en'); <% end %> 的语言仍然是&#39; top&#39;选项,在这种情况下&#39; es&#39;。

所以用;

moment

顶部选项是&#39; en&#39;所以用英文显示。

当我在I18n改变语言时,如何改变moment.js语言?

2 个答案:

答案 0 :(得分:1)

将此代码放在application.html中,切换语言和刷新页面。检查它是否适合您,而不是将其放到application.js.erb。

 <script type="text/javascript">
   <% if I18n.locale == :en %>
     moment.locale('en');
   <% end %> 
   <% if I18n.locale == :es %>
     moment.locale('es');
   <% end %> 
</script>

由于

答案 1 :(得分:0)

要做到这一点,你需要将网络的实际i18n语言放到js,可以这样做:

在主布局或application.js

var i18n_locale = "<%= I18n.locale %>"

当你初始化momentjs时:

moment.locale('en');

我希望它有所帮助。