3

我不知道应该如何在我的应用程序中使用 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文件,它仍然会显示"Unknown user myUserLogin".

有人有一个很好的工作例子可以分享吗?

编辑:因为翻译字符串中有一个变量,我不能这样做:

res.render('myview', {message: __(req.flash('message'))});

因为它将"Unknown user myUserLogin"在客户端语言 json 文件中设置,而不是"Unknown user %s"...

4

1 回答 1

1

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

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

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

这样,它将使用请求的当前语言环境进行翻译。

于 2015-01-06T23:46:49.997 回答