0

我是新手,i18n并且有一个使用它的现有存储库。我注意到在整个存储库中使用 i18n 的不同语法,我想知道什么是最好的方法。

我对下面的结构以及哪种语法选项最好感到困惑(我认为最好与语法保持一致并仅使用 1 个选项)。有人可以解释一下吗?

在控制器中,我发现:

var responses = require('../../locales/en.json');

let message = responses.authorisation.flashes['welcome'];
return res.status(200).json({
  success: true,
  message,
  token,
  user: userData
});

在中间件中,语法如下:

req.flash('error', req.__('organisation.not-found'));

app.js我发现:

const flash = require('connect-flash');
const flashMiddleware = require('./middleware/flashMiddleware');

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

flashMiddleware.js包含(我不确定这是做什么的):

const flashMiddleware = (req, res, next) => {
  res.locals.flashes = req.flash();

  next();
};

module.exports = flashMiddleware;
4

1 回答 1

0

您的第一个和最后一个代码块似乎根本没有使用i18n。相反,第一个代码块正在加载 JSONen并直接使用它。目前尚不清楚 flash 的东西正在使用什么,我在该代码中没有看到任何进行本地化的内容。

__使用on的中间件语法req似乎是您在中间件中使用此库的标准方式。

还有其他使用它的方法,文档中有详细说明

于 2019-12-30T11:21:27.263 回答