MCPcopy
hub / github.com/ollm/OpenComic / getLocaleUserLanguage

Function getLocaleUserLanguage

scripts/storage.js:559–614  ·  view source on GitHub ↗
(userLanguage = false)

Source from the content-addressed store, hash-verified

557var languagesList = false, getLocaleUserLanguageCache = {};
558
559function getLocaleUserLanguage(userLanguage = false)
560{
561 if(userLanguage === false)
562 userLanguage = navigator.language || navigator.userLanguage;
563
564 if(!userLanguage)
565 return 'en';
566
567 userLanguage = userLanguage.replace(/\_/g, '-').toLowerCase();
568
569 if(getLocaleUserLanguageCache[userLanguage])
570 return getLocaleUserLanguageCache[userLanguage];
571
572 var _userLanguage = userLanguage;
573
574 if(languagesList === false)
575 languagesList = JSON.parse(readFileApp('/languages/languagesList.json'));
576
577 var codes = [];
578
579 for(let code in languagesList)
580 {
581 if(languagesList[code].active)
582 {
583 codes.push(code.replace(/\_/g, '-'));
584 }
585 }
586
587 for(let i = 0, len = codes.length; i < len; i++)
588 {
589 if(codes[i] === userLanguage)
590 {
591 return getLocaleUserLanguageCache[_userLanguage] = codes[i];
592 }
593 }
594
595 userLanguage = extract(/^([a-z]+)/iu, userLanguage, 1).toLowerCase();
596
597 for(let i = 0, len = codes.length; i < len; i++)
598 {
599 if(codes[i] === userLanguage)
600 {
601 return getLocaleUserLanguageCache[_userLanguage] = codes[i];
602 }
603 }
604
605 for(let i = 0, len = codes.length; i < len; i++)
606 {
607 if(extract(/^([a-z]+)/iu, codes[i], 1).toLowerCase() === userLanguage)
608 {
609 return getLocaleUserLanguageCache[_userLanguage] = codes[i];
610 }
611 }
612
613 return getLocaleUserLanguageCache[_userLanguage] = 'en';
614}
615
616function parseDefaultObj(defaultObj)

Callers 1

startFunction · 0.85

Calls 2

readFileAppFunction · 0.85
extractFunction · 0.70

Tested by

no test coverage detected