diff options
author | Paul Frazee <pfrazee@gmail.com> | 2024-06-10 11:37:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-10 20:37:14 +0200 |
commit | 59f49bef68500c1719ed44470121f553208edc85 (patch) | |
tree | 811063867718d9393fd66b90e13965ae6f9146fd | |
parent | 620ab887132855d447f0a328bf58989c8f3f3328 (diff) | |
download | voidsky-59f49bef68500c1719ed44470121f553208edc85.tar.zst |
Override legacy language codes for indonesian, hebrew, and yiddish (#4461)
* Manually override incorrect 'in' to 'id' lang code * Fix additional legacy language code issues
-rw-r--r-- | src/locale/helpers.ts | 19 | ||||
-rw-r--r-- | src/platform/detection.ts | 3 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 24ab67893..cbaaf445a 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -116,7 +116,7 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { const langs = appLanguage.split(',').filter(Boolean) for (const lang of langs) { - switch (lang) { + switch (fixLegacyLanguageCode(lang)) { case 'en': return AppLanguage.en case 'ca': @@ -157,3 +157,20 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { } return AppLanguage.en } + +export function fixLegacyLanguageCode(code: string | null): string | null { + // handle some legacy code conversions, see https://xml.coverpages.org/iso639a.html + if (code === 'in') { + // indonesian + return 'id' + } + if (code === 'iw') { + // hebrew + return 'he' + } + if (code === 'ji') { + // yiddish + return 'yi' + } + return code +} diff --git a/src/platform/detection.ts b/src/platform/detection.ts index fffde1be2..0c0360a82 100644 --- a/src/platform/detection.ts +++ b/src/platform/detection.ts @@ -2,6 +2,7 @@ import {Platform} from 'react-native' import {isReducedMotion} from 'react-native-reanimated' import {getLocales} from 'expo-localization' +import {fixLegacyLanguageCode} from '#/locale/helpers' import {dedupArray} from 'lib/functions' export const isIOS = Platform.OS === 'ios' @@ -17,7 +18,7 @@ export const isMobileWeb = export const deviceLocales = dedupArray( getLocales?.() - .map?.(locale => locale.languageCode) + .map?.(locale => fixLegacyLanguageCode(locale.languageCode)) .filter(code => typeof code === 'string'), ) as string[] |