Initial commit — Mek-Tech AI Consultancy Framework v2.0
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"app_name": "Mek-Tech Consulting",
|
||||
"dashboard": "Dashboard",
|
||||
"clients": "Clients",
|
||||
"engagements": "Engagements",
|
||||
"tasks": "Tasks",
|
||||
"settings": "Settings",
|
||||
"logout": "Logout",
|
||||
"login": "Login",
|
||||
"username": "Username",
|
||||
"password": "Password",
|
||||
"forgot_password": "Forgot password?",
|
||||
"new_client": "New client",
|
||||
"new_engagement": "New engagement",
|
||||
"new_task": "New task",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"search": "Search",
|
||||
"no_results": "No results",
|
||||
"total": "Total",
|
||||
"active": "Active",
|
||||
"lead": "Lead",
|
||||
"paused": "Paused",
|
||||
"archived": "Archived",
|
||||
"status": "Status",
|
||||
"type": "Type",
|
||||
"date": "Date",
|
||||
"description": "Description",
|
||||
"notes": "Notes",
|
||||
"hours": "Hours",
|
||||
"time_registration": "Time Registration",
|
||||
"invoices": "Invoices",
|
||||
"new_invoice": "New invoice",
|
||||
"calendar": "Calendar",
|
||||
"notifications": "Notifications",
|
||||
"users": "Users",
|
||||
"audit_log": "Audit Log",
|
||||
"infrastructure": "Infrastructure",
|
||||
"architecture": "Architecture",
|
||||
"networking": "Networking",
|
||||
"racks": "Racks",
|
||||
"assessments": "Assessments",
|
||||
"reports": "Reports",
|
||||
"export_pdf": "Export PDF",
|
||||
"welcome": "Welcome",
|
||||
"overview": "Overview"
|
||||
}
|
||||
@@ -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 };
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"app_name": "Mek-Tech Consulting",
|
||||
"dashboard": "Dashboard",
|
||||
"clients": "Cliënten",
|
||||
"engagements": "Engagements",
|
||||
"tasks": "Taken",
|
||||
"settings": "Instellingen",
|
||||
"logout": "Uitloggen",
|
||||
"login": "Inloggen",
|
||||
"username": "Gebruikersnaam",
|
||||
"password": "Wachtwoord",
|
||||
"forgot_password": "Wachtwoord vergeten?",
|
||||
"new_client": "Nieuwe cliënt",
|
||||
"new_engagement": "Nieuw engagement",
|
||||
"new_task": "Nieuwe taak",
|
||||
"save": "Opslaan",
|
||||
"cancel": "Annuleren",
|
||||
"delete": "Verwijderen",
|
||||
"edit": "Bewerken",
|
||||
"search": "Zoeken",
|
||||
"no_results": "Geen resultaten",
|
||||
"total": "Totaal",
|
||||
"active": "Actief",
|
||||
"lead": "Lead",
|
||||
"paused": "Gepauzeerd",
|
||||
"archived": "Gearchiveerd",
|
||||
"status": "Status",
|
||||
"type": "Type",
|
||||
"date": "Datum",
|
||||
"description": "Omschrijving",
|
||||
"notes": "Notities",
|
||||
"hours": "Uren",
|
||||
"time_registration": "Urenregistratie",
|
||||
"invoices": "Facturen",
|
||||
"new_invoice": "Nieuwe factuur",
|
||||
"calendar": "Agenda",
|
||||
"notifications": "Meldingen",
|
||||
"users": "Gebruikers",
|
||||
"audit_log": "Audit Log",
|
||||
"infrastructure": "Infrastructuur",
|
||||
"architecture": "Architectuur",
|
||||
"networking": "Netwerk",
|
||||
"racks": "Racks",
|
||||
"assessments": "Assessments",
|
||||
"reports": "Rapporten",
|
||||
"export_pdf": "Exporteer PDF",
|
||||
"welcome": "Welkom",
|
||||
"overview": "Overzicht"
|
||||
}
|
||||
Reference in New Issue
Block a user