在服务器端快速应用程序中使用i18n-node

时间:2014-06-22 17:24:45

标签: javascript node.js express internationalization i18n-node

我无法弄清楚如何在我的应用程序中使用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" ...

1 个答案:

答案 0 :(得分:1)

我知道这个问题有点陈旧,但我遇到了同样的问题并找到了解决方案。

由于您使用了flash对象中的req方法,因此您还应该使用同一对象中提供的__方法:

req.flash('message', req.__('Unknown user %s', login));

这种方式将使用请求的当前区域设置进行翻译。