node.js - 国际化 Nodejs Jade 模板

标签 node.js express internationalization pug

我正在尝试使用 i18n-2 模块国际化我的 Nodejs Express 应用程序。一切正常,但我有一个问题。有没有办法翻译我的 Jade 模板中的字符串。假设我的网站中有 100 个字符串。我是否必须通过 res.render 调用将 100 个翻译发送到模板?

res.render('profile', {
  title: 'My cool title',
  user: req.user,
  hello1: req.i18n.__("hello1"),
  hello2: req.i18n.__("hello2"),
  hello3: req.i18n.__("hello3"),
  ...
  helloN: req.i18n.__("helloN")
});

还有其他方法可以做到这一点吗?就像下面的代码一样:

res.render('profile', {
  title: 'My cool title',
  user: req.user,
  i18n: req.i18n // to be used inside jade
});

最佳答案

i18n-2 已经在 Express 局部变量中注册了帮助器对象,可以从 Jade 模板访问这些对象。这些辅助方法会自动注册:“__”、“__n”、“getLocale”和“isPreferredLocale”。无需任何额外配置,应该能够在 Jade 模板中执行以下操作:

a(href="/") #{ __('home') }

关于node.js - 国际化 Nodejs Jade 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203778/

相关文章:

mysql - 如何在 MySql 中将 unix 时间戳转换为 UTC 日期?

javascript - nodejs、mongodb - 如何对来自多个查询的数据进行操作?

mysql - Node.js 服务器在某些请求后不返回响应

javascript - Js 文件 RAILS 中的翻译

javascript - Javascript 中如何判断字符串是否包含多字节字符?

javascript - 当 require() 处理文件时是否必须定义 module.exports ?

node.js - 什么 TypeScript 配置产生最接近 Node.js 16 功能的输出?

ruby-on-rails - EventMachine 与 Node.js

node.js - REST API 是否根据 header 中的 Passport JWT token 更改用户?

node.js - Express.js 提供旧版链接 (.php)