in src/amo/i18n/utils.js [138:163]
export function parseAcceptLanguage(
header: string,
): Array<{| lang: string, quality: number |}> {
// pl,fr-FR;q=0.3,en-US;q=0.1
if (!header || !header.split) {
return [];
}
const rawLangs = header.split(',');
const langList = rawLangs.map((rawLang) => {
const parts = rawLang.split(';');
let q = 1;
if (parts.length > 1 && parts[1].trim().indexOf('q=') === 0) {
const qVal = parseFloat(parts[1].split('=')[1]);
// eslint-disable-next-line no-restricted-globals
if (isNaN(qVal) === false) {
q = qVal;
}
}
return {
lang: parts[0].trim(),
quality: q,
};
});
langList.sort(qualityCmp);
return langList;
}