javascript - 在服务器端 express 应用程序中使用 i18n-node

标签 javascript node.js express internationalization i18n-node

我不知道应该如何在我的应用程序中使用 i18n-node 模块。

在 View 中,对于静态文本,这很简单,它工作得很好但是......

这是我的问题:

有时我必须设置一些错误消息或其他东西,例如:

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

然后我必须将此消息发送到我的 View ,例如:

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'))});

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

最佳答案

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

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

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

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

关于javascript - 在服务器端 express 应用程序中使用 i18n-node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24353769/

相关文章:

javascript - 单击按钮仅返回一个值

javascript - 停止重新加载 ajax 提交的表单

javascript - 如何像 console.log 一样在 winston 中记录 JavaScript 对象和数组?

mysql - 我的 node.js 服务器挂起 - 直到我发出 Ctrl+C

javascript - 如何获得两个词之间的所有内容

node.js - 向我的 Jade 模板添加页脚时超出了最大调用堆栈大小

javascript - TypeScript 中的 function 和 => 有什么区别?

javascript - 使用核心 Javascript 进行左右填充

node.js - 异步等待不使用回调 Node (没有 promise )

node.js - 如何终止在 localhost :8080 (MacOS) 上运行的 VueJS 应用程序