diff options
author | Eric Bailey <git@esb.lol> | 2023-12-11 17:34:18 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-11 15:34:18 -0800 |
commit | bae63f9bf0dbc40dd7ea99fde714e92b9fc83dc3 (patch) | |
tree | 8b4d06030dbd0603edb9345ba55c64eea44d4191 /src | |
parent | 3592f6f50b98c6bc81ebbf50f11f85df23376e53 (diff) | |
download | voidsky-bae63f9bf0dbc40dd7ea99fde714e92b9fc83dc3.tar.zst |
Patch bad migration, sanitize bad value (#2179)
Diffstat (limited to 'src')
-rw-r--r-- | src/locale/helpers.ts | 12 | ||||
-rw-r--r-- | src/locale/i18n.ts | 3 | ||||
-rw-r--r-- | src/locale/i18n.web.ts | 3 | ||||
-rw-r--r-- | src/state/persisted/legacy.ts | 3 |
4 files changed, 18 insertions, 3 deletions
diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 65db32f2f..4d01459ab 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -84,3 +84,15 @@ export function getTranslatorLink(text: string, lang: string): string { text, )}` } + +export function sanitizeAppLanguageSetting(appLanguage: string) { + const langs = appLanguage.split(',').filter(Boolean) + + for (const lang of langs) { + if (['en', 'hi'].includes(lang)) { + return lang + } + } + + return 'en' +} diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 4fe3cedd6..93d21f381 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -4,6 +4,7 @@ import {i18n} from '@lingui/core' import {useLanguagePrefs} from '#/state/preferences' import {messages as messagesEn} from '#/locale/locales/en/messages' import {messages as messagesHi} from '#/locale/locales/hi/messages' +import {sanitizeAppLanguageSetting} from '#/locale/helpers' export const locales = { en: 'English', @@ -26,6 +27,6 @@ export async function dynamicActivate(locale: string) { export async function useLocaleLanguage() { const {appLanguage} = useLanguagePrefs() useEffect(() => { - dynamicActivate(appLanguage) + dynamicActivate(sanitizeAppLanguageSetting(appLanguage)) }, [appLanguage]) } diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index 4e8b8d95d..bc484f303 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -2,6 +2,7 @@ import {useEffect} from 'react' import {i18n} from '@lingui/core' import {useLanguagePrefs} from '#/state/preferences' +import {sanitizeAppLanguageSetting} from '#/locale/helpers' export const locales = { en: 'English', @@ -29,6 +30,6 @@ export async function dynamicActivate(locale: string) { export async function useLocaleLanguage() { const {appLanguage} = useLanguagePrefs() useEffect(() => { - dynamicActivate(appLanguage) + dynamicActivate(sanitizeAppLanguageSetting(appLanguage)) }, [appLanguage]) } diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts index d70263746..f689c3d06 100644 --- a/src/state/persisted/legacy.ts +++ b/src/state/persisted/legacy.ts @@ -94,7 +94,8 @@ export function transform(legacy: Partial<LegacySchema>): Schema { legacy.preferences?.postLanguageHistory || defaults.languagePrefs.postLanguageHistory, appLanguage: - legacy.preferences?.postLanguage || defaults.languagePrefs.appLanguage, + legacy.preferences?.primaryLanguage || + defaults.languagePrefs.appLanguage, }, requireAltTextEnabled: legacy.preferences?.requireAltTextEnabled || |