From 5c5c74889c34c98ec7ad78bdb586d185b6784778 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 16 Jul 2025 21:01:05 +0300 Subject: [PATCH] best-effort language mapping --- .../ageAssurance/AgeAssuranceInitDialog.tsx | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/components/ageAssurance/AgeAssuranceInitDialog.tsx b/src/components/ageAssurance/AgeAssuranceInitDialog.tsx index ed064f3b20..9b2b3622c5 100644 --- a/src/components/ageAssurance/AgeAssuranceInitDialog.tsx +++ b/src/components/ageAssurance/AgeAssuranceInitDialog.tsx @@ -76,7 +76,7 @@ function Inner() { const [languageError, setLanguageError] = useState(false) const [disabled, setDisabled] = useState(false) const [language, setLanguage] = useState( - KWS_SUPPORTED_LANGS.find(v => v.value === langPrefs.appLanguage)?.value, + convertToKWSSupportedLanguage(langPrefs.appLanguage), ) const [error, setError] = useState('') @@ -325,3 +325,25 @@ function Inner() { ) } + +// best-effort mapping of our languages to KWS supported languages +function convertToKWSSupportedLanguage( + appLanguage: string, +): string | undefined { + switch (appLanguage) { + // only en is supported + case 'en-GB': + return 'en' + // pt-PT is pt (pt-BR is supported independently) + case 'pt-PT': + return 'pt' + // only chinese (simplified) is supported, map all chinese variants + case 'zh-Hans-CN': + case 'zh-Hant-HK': + case 'zh-Hant-TW': + return 'zh-Hans' + default: + // try and map directly - if undefined, they will have to pick from the dropdown + return KWS_SUPPORTED_LANGS.find(v => v.value === appLanguage)?.value + } +}