2016-08-10 26 views
1

momentjs-railsの宝石を使用している瞬間があります。スペイン語のロケールをjavascripts/moment/es.jsに追加しました。私はI18nの宝石を使用しており、私はアプリのグローバル言語を切り替えるときにmoment言語を切り替えることができません。Ruby on rails - moment.js I18nで言語を切り替える

追加すると、moment.locale('es');はスペイン語で表示し、追加します。 moment.locale('en');は英語で表示されますが、I18nでは変更されません。

私はapplication.js.erb

<% if I18n.locale == :es %> 
    moment.locale('es'); 
<% end %> 
<% if I18n.locale == :en %> 
    moment.locale('en'); 
<% end %> 

しかしmoment ES ' 'この場合には、オプション' トップの言語としてとどまる' で試してみました。

だから;

<% if I18n.locale == :en %> 
    moment.locale('en'); 
<% end %> 
<% if I18n.locale == :es %> 
    moment.locale('es'); 
<% end %> 

トップオプションは「en」ですので、英語で表示されます。

I18nで言語を変更すると、moment.js言語が変更されますか?

+0

application.jsファイルに// = require moment/es.jsを含めましたか? –

+0

はい、私の 'application.jsファイルに// // require = moment/es.js'という瞬間があります –

+0

このコードをapplication.htmlに入れ、言語を切り替えてページを更新し、それがあなたのために働くかどうかをチェックしますこれをapplication.js.erbに入れるのではなく、

答えて

1

このコードをapplication.htmlに入れて、言語を切り替えてページを更新します。それをapplication.js.erbに置くのではなく、あなたのために働くかどうかを確認してください。あなたはJSにウェブの実際の国際化言語を下に配置する必要があります。これを行うために

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

おかげ

0

は、次のように行うことができます。

メインレイアウトやapplication.js

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

、あなたがmomentjsを初期化します:

moment.locale('en'); 

私はそれが助けてくれることを願っています。

関連する問題