我无法弄清楚如何在我的应用程序中使用i18n-node模块。
在视图中,对于静态文本来说,它很简单,但它可以很好地工作,但是......
这是我的问题:
有时我必须设置一些错误消息或其他内容,例如:
req.flash('message', __('Unknown user %s', login));
然后我必须将此信息发送给我的观点,例如:
res.render('myview', {message: req.flash('message')});
但首先,我的消息"Unknown user %s"
将仅在默认语言json文件中设置,然后即使我将"Unknown user %s": "Something in the client language"
放在客户端语言json文件中,它仍将显示{{1} }。
有人有一个好的工作案例可以分享吗?
编辑:因为翻译后的字符串中有一个变量,我不能这样做:
"Unknown user myUserLogin"
因为它会在客户端语言json文件中设置res.render('myview', {message: __(req.flash('message'))});
,而不是"Unknown user myUserLogin"
...
答案 0 :(得分:1)
我知道这个问题有点陈旧,但我遇到了同样的问题并找到了解决方案。
由于您使用了flash
对象中的req
方法,因此您还应该使用同一对象中提供的__
方法:
req.flash('message', req.__('Unknown user %s', login));
这种方式将使用请求的当前区域设置进行翻译。