2013-10-23 100 views
1

我有一個簡單的登錄頁面與一個 「選項」 爲選擇語言:流星與i18next餅乾

<input type="text" class="form-control" id="identifiant" data-i18n="[placeholder]login.placeholders.username" autofocus> 
    <input type="password" class="form-control" id="password" data-i18n="[placeholder]login.placeholders.password"> 
    <input id="loginCheckbox" type="checkbox" value="remember-me"/>&nbsp;<label for="loginCheckbox" data-i18n="login.rememberme"></label> 
    <br> 
     <center> 
      <div class="form-group col-lg-6 col-lg-offset-3"> 
       <select id="select-lang" class="form-control"> 
        <option value="en-US" data-i18n="lang.english"></option> 
        <option value="fr-FR" data-i18n="lang.french"></option> 
       </select> 
      </div> 

JS部分:

if(Meteor.isClient) { 
Meteor.startup(function() { 
    i18n 
     .init({ 
      fallbackLng:'en-US', 
     }) 
     .done(function() { 
      $('[data-i18n]').i18n(); 
     }); 
}); 

}

當您更改語言在登錄頁面上一切工作完美:)。但是當我登錄一個用戶時,我失去了其他頁面的翻譯。我的問題是:如何爲我的所有網站保存語言設置?餅乾 ?

對不起,我是新的i18next :)

回答

1

是的,cookies是要走的路。會話是不夠的,因爲它不是持久的。

Cookie.set('lang', 'en-US'); 

Cookie.get('lang'); 
+0

嘿謝謝人:) – Ricklemer

0

使用流星會議。

if(Meteor.isClient) { 
    Meteor.startup(function() { 
    if(typeof Session.get('lang') == 'undefined') { 
     //set default lang 
     Session.set('lang', 'en-US'); 
    } 
    i18n 
     .init({ 
     fallbackLng: Session.get('lang'), 
    }) 
    .done(function() { 
     $('[data-i18n]').i18n(); 
    }); 
}); 

改變語言時更改會話。 會話在用戶關閉瀏覽器之前處於活動狀態。如果您想在重新打開瀏覽器後保存所選語言,請將lang存儲在收藏夾中。

+0

好的,您認爲我可以將lang存儲在用戶集合中嗎? – Ricklemer

+0

我通常有收藏中的用戶設置。像語言,日期格式等 –