UNPKG

auth-center

Version:
42 lines (30 loc) 910 B
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = i18n; var _fs = require("fs"); var _path = require("path"); function i18n(messages) { const dir = (0, _path.join)(__dirname, '../i18n'); const _userMessages = messages || {}; const _messages = {}; return (ctx, next) => { if (ctx.query.locale) { ctx.session.locale = ctx.query.locale; } const lang = ctx.session.locale || 'en'; if (!_messages[lang]) { const temp = _userMessages[lang] || _userMessages['*'] || {}; const file = (0, _path.join)(dir, `${lang}.json`); if ((0, _fs.existsSync)(file)) { _messages[lang] = Object.assign(require(file), temp); } else { _messages[lang] = Object.assign({}, temp); } } ctx.state.__ = key => _messages[lang][key] || key; return next(); }; } module.exports = exports.default;