UNPKG

i18next-express-middleware

Version:
51 lines (41 loc) 1.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = { name: 'header', lookup: function lookup(req, res, options) { var found = void 0; if (typeof req !== 'undefined') { var headers = req.headers; if (!headers) return found; var locales = []; var acceptLanguage = headers['accept-language']; if (acceptLanguage) { var lngs = [], i = void 0, m = void 0; var rgx = /(([a-z]{2})-?([A-Z]{2})?)\s*;?\s*(q=([0-9.]+))?/g; do { m = rgx.exec(acceptLanguage); if (m) { var lng = m[1], weight = m[5] || '1', q = Number(weight); if (lng && !isNaN(q)) { lngs.push({ lng: lng, q: q }); } } } while (m); lngs.sort(function (a, b) { return b.q - a.q; }); for (i = 0; i < lngs.length; i++) { locales.push(lngs[i].lng); } if (locales.length) found = locales; } } return found; } };