如何使用hapi.js的i18n模块?

时间:2016-11-02 13:03:17

标签: node.js internationalization hapijs

我已经阅读了有关i18n节点模块的本地化但是它是通过node和express.js给出的,我使用的是hapi.s框架而不是express.js

我也读过关于https://github.com/codeva/hapi-i18n的信息但是没有工作。

请帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

There is an example使用普通JavaScript对象i18n提供简单的{}用法。

但是,我使用以下代码添加请求语言。然后我使用expressjs在相关的路由中间件上使用它。

您应该使用符合hapijs

的代码
/* ADDING LOCALE and REGION INFO TO THE REQUEST OBJECT */
app.use(function (req,res,next) {
  // Finding the region of the request
  let acceptsLanguages = req.acceptsLanguages()
  let region
  let idx
  for (var i = 0; i < acceptsLanguages.length; i++) {
    idx = acceptsLanguages[i].indexOf('-')
    if (idx) {
      region = acceptsLanguages[i].substr(idx + 1, 2).toLowerCase()
      break
    }
  }
  // Choosing the default region as U.S.
  req.region = region || "us"
  // Choosing 'en-US' as default
  req.language = req.acceptsLanguages(appLocales) || 'en-US'
  next()
})

我希望这会对你有所帮助。