在服务器端快速应用中使用i18n-node
我无法弄清楚如何在应用程序中使用i18n-node模块。
在视图中,对于静态文本,这很容易,它完美的工作,但…
这是我的问题:
有时我必须设置一些错误信息或其他的东西,例如:
req.flash('message', __('Unknown user %s', login));
那么我将不得不把这个消息发送给我的意见,例如:
res.render('myview', {message: req.flash('message')});
但是,首先,我的消息"Unknown user %s"
只能在默认的语言json文件中设置,然后即使我在客户端语言的json文件中input"Unknown user %s": "Something in the client language"
中的"Unknown user %s": "Something in the client language"
仍然会显示"Unknown user myUserLogin"
。
有人有一个很好的工作示例来分享?
编辑:因为,在翻译的string中有一个variables,我不能这样做:
res.render('myview', {message: __(req.flash('message'))});
因为它将在客户端语言json文件中设置"Unknown user myUserLogin"
,而不是"Unknown user %s"
…
我知道这个问题有点古怪,但我遇到了同样的问题,并find了解决办法。
由于您使用req
对象的flash
方法,因此还应该使用同一对象中的__
方法:
req.flash('message', req.__('Unknown user %s', login));
这样就可以使用请求的当前语言环境进行翻译。