Initial commit — Mek-Tech AI Consultancy Framework v2.0
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const cache = {};
|
||||
|
||||
function loadLocale(lang) {
|
||||
if (cache[lang]) return cache[lang];
|
||||
try {
|
||||
const filePath = path.join(__dirname, lang + '.json');
|
||||
if (fs.existsSync(filePath)) {
|
||||
cache[lang] = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
return cache[lang];
|
||||
}
|
||||
} catch (e) {}
|
||||
return loadLocale('nl');
|
||||
}
|
||||
|
||||
function t(lang, key, ...args) {
|
||||
const dict = loadLocale(lang || 'nl');
|
||||
let val = dict[key] || key;
|
||||
if (args.length > 0) {
|
||||
args.forEach((a, i) => { val = val.replace(`{${i}}`, a); });
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
function localeMiddleware(req, res, next) {
|
||||
const lang = (req.session && req.session.lang) || 'nl';
|
||||
res.locals.__ = (key, ...args) => t(lang, key, ...args);
|
||||
res.locals.lang = lang;
|
||||
next();
|
||||
}
|
||||
|
||||
module.exports = { t, loadLocale, localeMiddleware };
|
||||
Reference in New Issue
Block a user