Fallback to english in case no preferred languages are found
This commit is contained in:
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user