auth-center
Version:
auth center with TOTP
42 lines (30 loc) • 910 B
JavaScript
;
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;