From f5a54633dca3599dab82730fd7d550c0289f170f Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 17 Jan 2024 10:22:49 -0300 Subject: add translation completeness from pogen to the UI --- packages/web-util/src/context/translation.ts | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'packages/web-util/src/context') diff --git a/packages/web-util/src/context/translation.ts b/packages/web-util/src/context/translation.ts index fb6efc40a..2b9704939 100644 --- a/packages/web-util/src/context/translation.ts +++ b/packages/web-util/src/context/translation.ts @@ -34,6 +34,7 @@ interface Type { changeLanguage: (l: string) => void; i18n: InternationalizationAPI; dateLocale: Locale, + completness: { [id in keyof typeof supportedLang]: number } } const supportedLang = { @@ -43,7 +44,6 @@ const supportedLang = { de: "Deutsch [de]", sv: "Svenska [sv]", it: "Italiane [it]", - navigator: "Defined by navigator", }; const initial: Type = { @@ -53,7 +53,15 @@ const initial: Type = { // do not change anything }, i18n, - dateLocale: enLocale + dateLocale: enLocale, + completness: { + de: 0, + en: 0, + es: 0, + fr: 0, + it: 0, + sv: 0, + } }; const Context = createContext(initial); @@ -62,6 +70,7 @@ interface Props { children: ComponentChildren; forceLang?: string; source: Record; + completness?: Record; } // Outmost UI wrapper. @@ -70,8 +79,17 @@ export const TranslationProvider = ({ children, forceLang, source, + completness: completnessProp }: Props): VNode => { - const { value: lang, update: changeLanguage } = useLang(initial); + const completness = { + de: !completnessProp || !completnessProp["de"] ? 0 : completnessProp["de"], + en: !completnessProp || !completnessProp["en"] ? 0 : completnessProp["en"], + es: !completnessProp || !completnessProp["es"] ? 0 : completnessProp["es"], + fr: !completnessProp || !completnessProp["fr"] ? 0 : completnessProp["fr"], + it: !completnessProp || !completnessProp["it"] ? 0 : completnessProp["it"], + sv: !completnessProp || !completnessProp["sv"] ? 0 : completnessProp["sv"], + } + const { value: lang, update: changeLanguage } = useLang(initial, completness); useEffect(() => { if (forceLang) { @@ -93,7 +111,7 @@ export const TranslationProvider = ({ enLocale; return h(Context.Provider, { - value: { lang, changeLanguage, supportedLang, i18n, dateLocale }, + value: { lang, changeLanguage, supportedLang, i18n, dateLocale, completness }, children, }); }; -- cgit v1.2.3