Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
29 lines
887 B
JavaScript
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
|
|
};
|