2

我有一个简单的登录页面,其中包含选择语言的“选项”:

  <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 的新手 :)

4

2 回答 2

3

是的,饼干是要走的路。会话是不够的,因为它不是持久的。

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

Cookie.get('lang');
于 2013-10-23T19:52:28.700 回答
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();
    }); 
});

并在更改语言时更改会话。会话处于活动状态,直到用户关闭他的浏览器。如果您想在重新打开浏览器后保留所选语言,请将语言存储在集合中。

于 2013-10-23T17:14:41.297 回答