我使用 i18n 进行 Express 翻译。
要选择语言,我使用这个
<select class="selectpicker" data-width="fit" onchange="javascript:langSelect(this)">
<option value="de" data-content='<span class="flag-icon flag-icon-de"></span> Deutsch'>Deutsch</option>
<option value="en" data-content='<span class="flag-icon flag-icon-us"></span> English'>English</option>
<option value="es" data-content='<span class="flag-icon flag-icon-es"></span> Español'>Español</option>
<option value="fr" data-content='<span class="flag-icon flag-icon-fr"></span> Français'>Français</option>
<option value="it" data-content='<span class="flag-icon flag-icon-it"></span> Italiano'>Italiano</option>
<option value="nl" data-content='<span class="flag-icon flag-icon-nl"></span> Nederlands'>Nederlands</option>
</select>
有了这个
<script type="text/javascript">
function langSelect(lgu)
{
window.location = "/setlocale/"+lgu.value;
}
</script>
i18n 的设置如下
i18n.configure({
locales: ['de', 'en', 'es', 'fr', 'it', 'nl'],
directory: path.join(__dirname, '..', '/locales'),
defaultLocale: 'en',
cookie: 'lang',
objectNotation: true,
});
module.exports = function(req, res, next) {
i18n.init(req, res);
var current_local = i18n.getLocale();
return next();
};
即使重新加载页面,我也会尝试在选择器上显示所选的语言。
我该怎么做?
如何获取 cookie 中的值?
我尝试了 req.query.current_local
但没有成功。
非常感谢
最佳答案
当您调用“setlocale”网址时,您可以使用:
res.cookie("lang", req.params.lang);
你可以得到它:
req.cookies.lang
关于node.js - i18n 如何获取有关该语言的 cookie 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47924597/