taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit ab6168c8fd232a086320aa7ab4b484c3ba68937b
parent 1a5756e7e7b9bf47d6e7496347ff16c571520f8e
Author: Sebastian <sebasjm@gmail.com>
Date:   Thu, 20 Feb 2025 20:55:38 -0300

forceLang just for testing

Diffstat:
Mpackages/aml-backoffice-ui/src/ExchangeAmlFrame.tsx | 1-
Mpackages/bank-ui/src/pages/BankFrame.tsx | 1-
Mpackages/challenger-ui/src/app.tsx | 1-
Mpackages/challenger-ui/src/pages/Frame.tsx | 7+++----
Mpackages/kyc-ui/src/app.tsx | 1-
Mpackages/web-util/src/context/translation.ts | 62+++++++++++++++++++++++++++++++++++++++++---------------------
6 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/packages/aml-backoffice-ui/src/ExchangeAmlFrame.tsx b/packages/aml-backoffice-ui/src/ExchangeAmlFrame.tsx @@ -164,7 +164,6 @@ export function ExchangeAmlFrame({ } } sites={[]} - supportedLangs={["en", "es", "de"]} > <li> <div class="text-xs font-semibold leading-6 text-gray-400"> diff --git a/packages/bank-ui/src/pages/BankFrame.tsx b/packages/bank-ui/src/pages/BankFrame.tsx @@ -119,7 +119,6 @@ export function BankFrame({ sites={ !settings.topNavSites ? [] : Object.entries(settings.topNavSites) } - supportedLangs={["en", "es", "de"]} > <li> <div class="text-xs font-semibold leading-6 text-gray-400"> diff --git a/packages/challenger-ui/src/app.tsx b/packages/challenger-ui/src/app.tsx @@ -71,7 +71,6 @@ export function App(): VNode { <SettingsProvider value={settings}> <TranslationProvider source={strings} - forceLang="en" completeness={{ es: strings["es"].completeness, de: strings["de"].completeness, diff --git a/packages/challenger-ui/src/pages/Frame.tsx b/packages/challenger-ui/src/pages/Frame.tsx @@ -66,10 +66,9 @@ export function Frame({ children }: { children: ComponentChildren }): VNode { title="Challenger" onLogout={undefined} iconLinkURL="#" - sites={preferences.showChallangeSetup ? [ - ["New challenge","#/setup/1"] - ] :[]} - supportedLangs={["en"]} + sites={ + preferences.showChallangeSetup ? [["New challenge", "#/setup/1"]] : [] + } > <li> <div class="text-xs font-semibold leading-6 text-gray-400"> diff --git a/packages/kyc-ui/src/app.tsx b/packages/kyc-ui/src/app.tsx @@ -58,7 +58,6 @@ export function App(): VNode { <SettingsProvider value={settings}> <TranslationProvider source={strings} - forceLang="en" completeness={{ es: strings["es"].completeness, de: strings["de"].completeness, diff --git a/packages/web-util/src/context/translation.ts b/packages/web-util/src/context/translation.ts @@ -23,8 +23,8 @@ import { es as esLocale, enGB as enLocale, fr as frLocale, - de as deLocale -} from "date-fns/locale" + de as deLocale, +} from "date-fns/locale"; export type InternationalizationAPI = typeof i18n; @@ -33,8 +33,8 @@ interface Type { supportedLang: { [id in keyof typeof supportedLang]: string }; changeLanguage: (l: string) => void; i18n: InternationalizationAPI; - dateLocale: Locale, - completeness: { [id in keyof typeof supportedLang]: number } + dateLocale: Locale; + completeness: { [id in keyof typeof supportedLang]: number }; } const supportedLang = { @@ -61,14 +61,15 @@ const initial: Type = { fr: 0, it: 0, sv: 0, - } + }, }; const Context = createContext<Type>(initial); interface Props { initial?: string; children: ComponentChildren; - forceLang?: string; + /** ONLY USER FOR TESTING */ + forceLang__testing?: string; source: Record<string, any>; completeness?: Record<string, number>; } @@ -77,25 +78,33 @@ interface Props { export const TranslationProvider = ({ initial, children, - forceLang, + forceLang__testing: forceLang, source, - completeness: completenessProp + completeness: completenessProp, }: Props): VNode => { const completeness = { en: 100, - de: !completenessProp || !completenessProp["de"] ? 0 : completenessProp["de"], - es: !completenessProp || !completenessProp["es"] ? 0 : completenessProp["es"], - fr: !completenessProp || !completenessProp["fr"] ? 0 : completenessProp["fr"], - it: !completenessProp || !completenessProp["it"] ? 0 : completenessProp["it"], - sv: !completenessProp || !completenessProp["sv"] ? 0 : completenessProp["sv"], - } - const { value: lang, update: changeLanguage } = useLang(initial, completeness); + de: + !completenessProp || !completenessProp["de"] ? 0 : completenessProp["de"], + es: + !completenessProp || !completenessProp["es"] ? 0 : completenessProp["es"], + fr: + !completenessProp || !completenessProp["fr"] ? 0 : completenessProp["fr"], + it: + !completenessProp || !completenessProp["it"] ? 0 : completenessProp["it"], + sv: + !completenessProp || !completenessProp["sv"] ? 0 : completenessProp["sv"], + }; + const { value: lang, update: changeLanguage } = useLang( + initial, + completeness, + ); useEffect(() => { if (forceLang) { changeLanguage(forceLang); } - },[forceLang]); + }, [forceLang]); useEffect(() => { setupI18n(lang, source); }, [lang]); @@ -105,13 +114,24 @@ export const TranslationProvider = ({ setupI18n(lang, source); } - const dateLocale = lang === "es" ? esLocale : - lang === "fr" ? frLocale : - lang === "de" ? deLocale : - enLocale; + const dateLocale = + lang === "es" + ? esLocale + : lang === "fr" + ? frLocale + : lang === "de" + ? deLocale + : enLocale; return h(Context.Provider, { - value: { lang, changeLanguage, supportedLang, i18n, dateLocale, completeness }, + value: { + lang, + changeLanguage, + supportedLang, + i18n, + dateLocale, + completeness, + }, children, }); };