在服务器端快速应用中使用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)); 

这样就可以使用请求的当前语言环境进行翻译。