Fallback to english in case no preferred languages are found

This commit is contained in:
schroda
2025-04-22 10:37:47 +02:00
parent 477656a3a9
commit f19c5d5038

View File

@@ -66,8 +66,23 @@ export function langCodeToName(code: string): string {
return getLanguage(code).nativeName;
}
export const toUniqueLanguageCodes = (codes: string[]): string[] => {
const languages = codes.map((code) => getLanguage(code));
const languagesByIsoCode = Object.groupBy(languages, (language) => language.isoCode);
return Object.entries(languagesByIsoCode)
.filter(([, languagesOfIsoCode]) => !!languagesOfIsoCode?.length)
.map(([, languagesOfIsoCode]) => languagesOfIsoCode![0].orgCode);
};
function defaultNativeLang(): readonly string[] {
return navigator.languages;
const preferredLanguages = toUniqueLanguageCodes([...navigator.languages]);
if (!preferredLanguages.length) {
return ['en'];
}
return preferredLanguages;
}
export function extensionDefaultLangs(): string[] {
@@ -88,12 +103,3 @@ export const langSortCmp = (a: string, b: string) => {
return aLang.localeCompare(bLang);
};
export const toUniqueLanguageCodes = (codes: string[]): string[] => {
const languages = codes.map((code) => getLanguage(code));
const languagesByIsoCode = Object.groupBy(languages, (language) => language.isoCode);
return Object.entries(languagesByIsoCode)
.filter(([, languagesOfIsoCode]) => !!languagesOfIsoCode?.length)
.map(([, languagesOfIsoCode]) => languagesOfIsoCode![0].orgCode);
};