将动态i18n资源从节点传递给jade

时间:2015-10-19 21:28:29

标签: javascript node.js pug i18next

我希望在出现错误时向用户显示自定义错误页面。 我的问题是,它必须是i18n-ed。

点子:

在节点中验证 - >如果不被接受 - > res.render('error', {message: errorMessageNameTooLong}); - >在玉器中,将其渲染到占位符,从而翻译我的translation.json p(data-i18n='errorMessageNameTooLong')

中的错误

问题:

如何传递消息,以便VALUE成为jade中的data-i18n属性?

到目前为止,我一直在将我的jade模板预格式化为p(data-i18n="errormsg") 但这使得无法显示(即翻译)多个错误。 我希望p具有自定义data-i18n属性,具体取决于它实际上是什么错误...

我希望这是可以理解的:D

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

你的答案是单向的,但是更简单:

p(data-i18n=errMsg)

只需将变量放在=之后,而不是""

查看this question以获得详细说明,或查看official documentation

答案 1 :(得分:0)

好吧,我其实只是自己发现了......这绝对是直截了当的。

的解决方案:

router.post(' /注册&#39):

if(username.length > MAX_USERNAME_LENGTH) {
  res.render('error', {title: "error.error", errMsg: "error.nameTooLong"});
}

error.jade:

block content
  h1(data-i18n="#{title}")
  p(data-i18n="#{errMsg}")