关于jQuery:Ruby on Rails-Moment.js使用I18n切换语言

Ruby on rails - moment.js switch languages with I18n

我有时间使用momentjs-rails gem,并且在javascripts/moment/es.js中添加了西班牙语言环境。我使用I18n gem,但是切换应用程序的全局语言时无法切换moment语言。

添加,moment.locale('es');使其以西班牙语显示,并添加; moment.locale('en');使其以英语显示,但不会随I18n更改。

我已经在application.js.erb中尝试过

1
2
3
4
5
6
<% if I18n.locale == :es %>
     moment.locale('es');
<% end %>
<% if I18n.locale == :en %>
     moment.locale('en');
<% end %>

,但是moment \\的语言保留为\\'top \\'选项,在这种情况下为\\'es \\'。

这样;

1
2
3
4
5
6
<% if I18n.locale == :en %>
     moment.locale('en');
<% end %>
<% if I18n.locale == :es %>
     moment.locale('es');
<% end %>

最上面的选项是\\'en \\',因此它以英文显示。

在I18n中更改语言时,如何更改moment.js语言????


将此代码放在application.html中,切换语言并刷新页面。检查它是否对您有用,而不是将其放入application.js.erb。

1
2
3
4
5
6
7
 <script type="text/javascript">
   <% if I18n.locale == :en %>
     moment.locale('en');
   <% end %>
   <% if I18n.locale == :es %>
     moment.locale('es');
   <% end %>

谢谢


为此,您需要将Web的实际i18n语言放到js中,可以这样完成:

在主布局或application.js中

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

以及何时初始化moment.js:

1
moment.locale('en');

我希望对您有所帮助。