/** * DC-077: i18n route — serves translations and language metadata */ const express = require('express'); const { ok } = require('../src/utils/responses'); const i18n = require('../src/utilities/i18n'); module.exports = function() { const router = express.Router(); // GET /api/v1/i18n/languages — list supported languages router.get('/i18n/languages', (req, res) => { const meta = i18n.getAllLanguages(); ok(res, { languages: i18n.getSupportedLanguages().map(code => { const m = meta[code] || {}; return { code, name: m.name || code, flag: m.flag || '🌐', rtl: !!m.rtl }; }), default: i18n.DEFAULT_LANGUAGE, }); }); // GET /api/v1/i18n/translations/:lang — get all translations for a language router.get('/i18n/translations/:lang', (req, res) => { const lang = req.params.lang; if (!i18n.isSupported(lang)) { return res.status(400).json({ success: false, error: `Unsupported language: ${lang}`, supported: i18n.getSupportedLanguages(), }); } ok(res, { lang, translations: i18n.TRANSLATIONS[lang] || {} }); }); return router; };