u18next节点setLng似乎不起作用

时间:2015-03-17 11:57:54

标签: node.js express i18next

我遇到了node.js模块i18next的问题(使用express)。我以这种方式初始化(​​在app.js文件上)模块:

i18n.init({
    ns: { namespaces: ['text'], defaultNs: 'text'},
    resSetPath: 'locales/__lng__/new.__ns__.json',
    preload: ['es', 'uk', 'fr', 'ge', 'ru', 'it'],
    saveMissing: true,
    debug: true,
    lng:"es",
    sendMissingTo: 'fallback',
    useCookie: false,
    detectLngFromHeaders: false,
    detectLngFromPath: false
});

并在路线文件中我做了这样的事情:

router.get('/not_registered', function(req, res) {
    console.log("users.js-> user.get-> init lang: " + req.session.lang);
    req.i18n.setLng(req.session.lang, function(t)
    {
        console.log("users.js-> user.get-> inside function");
        res.render('users/user');
    });
});

第一个console.log有效,但不是第二个......我做错了什么?任何帮助?

谢谢。

1 个答案:

答案 0 :(得分:1)

解决方案我找到了

最后,我看到i18n.setLng函数没有使用回调...我唯一需要做的是:

req.i18n.setLng(req.session.lang);
res.render('users/user');

感谢@Alexandr