Files
gameno-api/utils/errorLocalization.js
T
kavehhn f04c797be6 Initial commit: teaching institution management API.
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
2026-08-09 04:18:08 +02:00

29 lines
887 B
JavaScript

// /utils/errorLocalization.js
const errors = require('./errors.json');
const config = require('../config/config');
const resolveLanguage = (req) => {
if (req && req.query && req.query.lang) {
const lang = req.query.lang.toLowerCase();
if (['fa', 'en'].includes(lang)) return lang;
}
if (req && req.headers && req.headers['accept-language']) {
const headerLang = req.headers['accept-language'].toLowerCase();
if (headerLang.includes('fa')) return 'fa';
if (headerLang.includes('en')) return 'en';
}
return config.DEFAULT_LANG || 'en';
};
const getLocalizedErrorMessage = (errorCode, req = null) => {
const lang = resolveLanguage(req);
const errorDef = errors[errorCode] || errors.INTERNAL_SERVER_ERROR;
return errorDef[lang] || errorDef.en || 'An unexpected error occurred.';
};
module.exports = {
resolveLanguage,
getLocalizedErrorMessage
};