我正在使用i18n库来本地化我的项目,似乎运行良好,我通过以下方式对其进行了配置:
i18n.configure({
locales: ['it', 'en'],
directory: path.join(__dirname, "../locales"),
cookie: 'lang'
});
app.use(i18n.init);
从本质上讲,当我发送请求时,我可以使用response
对象轻松访问本地化字符串,例如:
router.post('/signup', authController.signup);
和signup
方法:
exports.signup = async function (req, res) {
console.log(res.__('Hello'));
});
现在假设我想全局访问i18n
,例如:
exports.signup = async function (req, res) {
console.log(res.__('Hello'));
validateUser(req.body, res);
});
function validateUser(user, res) {
if (!user.username || !user.email || !user.password || !user.passwordConfirm) {
errors.push({ msg: res.__('provide_all_fields') });
}
}
如您所见,我解决了将参数response
作为参数传递的问题,但是我是NodeJS
的新手,因此也许有另一种简单的方法来访问i18n
本地化每次res
对象都没有传递的字符串。