节点国际化无法在Jade视图中工作(节点i18n)

时间:2017-07-28 13:35:54

标签: javascript node.js express internationalization

我一直在使用i18n节点模块进行国际化。在根目录中,我按如下方式初始化模块:

i18n.configure({
  locales: ['en', 'nl'],
  register: global,
  directory: path.join(__dirname, 'locales'),
  defaultLocale: 'en',
  objectNotation: true
});

app.use(i18n.init);

此模块已将翻译功能(__())注册为全局。但是,此功能不起作用,所以我决定将其传递下来,以便该方法在我的控制器和视图中可用:

app.use((req, res, next) => {
  res.locals.user = req.session.user || null;
  res.locals.formatDate = (data) => data ? format(data, process.env.DATE_FORMAT) : null;
  res.locals.__ = res.__ = () => i18n.__.apply(req, arguments);
  req.setLocale('en')

  next();
});

它在控制器中工作正常。我使用req.__('string-to-translate')并根据需要进行翻译。

然而,当我尝试在用pug / jade渲染的视图中使用完全相同的函数时,它会返回undefined

任何想法我做错了什么?

0 个答案:

没有答案