我遇到了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有效,但不是第二个......我做错了什么?任何帮助?
谢谢。
答案 0 :(得分:1)
最后,我看到i18n.setLng函数没有使用回调...我唯一需要做的是:
req.i18n.setLng(req.session.lang);
res.render('users/user');
感谢@Alexandr