acha-framework
Version:
is a modular framework on both client (angular.js) and server (node.js) side, it provides security, orm, ioc, obfuscation and ...
50 lines • 1.3 kB
JavaScript
(function (undefined) {
Ioc.define('backend.localize', ['backend.configuration'], function (provide, config) {
const i18n = require('i18n');
const getCulture = function (req) {
if (req.originalUrl.length >= 3) {
//matches /fa or /fa/
req.params.lang = req.originalUrl.substring(1, 3);
} else if (req.originalUrl === '/') {
req.params.lang = config.i18n.def;
}
var lang = (req.params.lang || req.cookies.culture).toLowerCase();
if (config.i18n.allowed.indexOf(lang) !== -1) {
return lang;
}
return config.i18n.def;
};
const setCulture = function (req, res) {
var lang = getCulture(req);
req.setLocale(lang);
res.cookie('culture', lang);
return lang;
};
const cultureInfo = function (req, res) {
'use strict';
var lang = setCulture(req, res);
switch (lang) {
case 'fa':
case 'ar':
return {
lang: lang,
dir: 'rtl',
rtl: true
};
break;
default:
return {
lang: lang,
dir: 'ltr',
rtl: false
};
break;
}
};
provide({
getCulture: getCulture,
setCulture: setCulture,
cultureInfo: cultureInfo
});
});
}());