Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
75 lines
1.3 KiB
Plaintext
75 lines
1.3 KiB
Plaintext
export const rtlLanguages = [
|
|
'ar',
|
|
'fa',
|
|
'he'
|
|
];
|
|
export const acceptedLanguages = [
|
|
'ar',
|
|
'az',
|
|
'bg',
|
|
'bn-BD',
|
|
'bn-IN',
|
|
'ca',
|
|
'cs',
|
|
'bn-BD',
|
|
'bn-IN',
|
|
'da',
|
|
'de',
|
|
'en',
|
|
'es',
|
|
'et',
|
|
'fa',
|
|
'fr',
|
|
'he',
|
|
'hr',
|
|
'hu',
|
|
'hy',
|
|
'id',
|
|
'is',
|
|
'it',
|
|
'ja',
|
|
'ko',
|
|
'lt',
|
|
'lv',
|
|
'my',
|
|
'nb',
|
|
'nl',
|
|
'pl',
|
|
'pt',
|
|
'ro',
|
|
'rs',
|
|
'rs-latin',
|
|
'ru',
|
|
'sk',
|
|
'sl',
|
|
'sv',
|
|
'ta',
|
|
'th',
|
|
'tr',
|
|
'uk',
|
|
'vi',
|
|
'zh',
|
|
'zh-TW'
|
|
];
|
|
function parseAcceptLanguage(acceptLanguageHeader) {
|
|
return acceptLanguageHeader.split(',').map((lang)=>{
|
|
const [language, quality] = lang.trim().split(';q=');
|
|
return {
|
|
language,
|
|
quality: quality ? parseFloat(quality) : 1
|
|
};
|
|
}).sort((a, b)=>b.quality - a.quality) // Sort by quality, highest to lowest
|
|
;
|
|
}
|
|
export function extractHeaderLanguage(acceptLanguageHeader) {
|
|
const parsedHeader = parseAcceptLanguage(acceptLanguageHeader);
|
|
let matchedLanguage;
|
|
for (const { language } of parsedHeader){
|
|
if (!matchedLanguage && acceptedLanguages.includes(language)) {
|
|
matchedLanguage = language;
|
|
}
|
|
}
|
|
return matchedLanguage;
|
|
}
|
|
|
|
//# sourceMappingURL=languages.js.map |