UNPKG

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
(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 }); }); }());