taler-typescript-core

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

commit d178affa2893ce9cde57c5f4889acd0c327afb3f
parent 7a98e3a1c6f0530f418203ddf3260a7225f13f35
Author: Sebastian <sebasjm@taler-systems.com>
Date:   Thu, 29 Jan 2026 17:43:21 -0300

show all langs in dev

Diffstat:
Mpackages/merchant-backoffice-ui/src/components/menu/LangSelector.tsx | 27++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/packages/merchant-backoffice-ui/src/components/menu/LangSelector.tsx b/packages/merchant-backoffice-ui/src/components/menu/LangSelector.tsx @@ -24,23 +24,29 @@ import { h, VNode } from "preact"; import { useState } from "preact/hooks"; import langIcon from "../../assets/icons/languageicon.svg"; import { strings as messages } from "../../i18n/strings.js"; +import { usePreference } from "../../hooks/preference.js"; type LangsNames = { [P in keyof typeof messages]: string; }; -const names: LangsNames = { - // uk: "Українська [uk]", - // tr: "Türkçe [tr]", - // sv: "Svenska [sv]", - // it: "Italiano [it]", +const LANG_NAMES_PROD: LangsNames = { fr: "Français [fr]", - // es: "Español [es]", de: "Deutsch [de]", en: "English [en]", }; +const LANG_NAMES_DEV: LangsNames = { + fr: "Français [fr]", + de: "Deutsch [de]", + en: "English [en]", + uk: "Українська [uk]", + tr: "Türkçe [tr]", + sv: "Svenska [sv]", + it: "Italiano [it]", + es: "Español [es]", +}; -function getLangName(s: keyof LangsNames | string) { +function getLangName(names: LangsNames, s: keyof LangsNames | string) { if (names[s]) return names[s]; return s; } @@ -48,6 +54,9 @@ function getLangName(s: keyof LangsNames | string) { export function LangSelector(): VNode { const [updatingLang, setUpdatingLang] = useState(false); const { lang, changeLanguage } = useTranslationContext(); + const [{ persona }] = usePreference(); + const names = + persona === "developer" ? LANG_NAMES_DEV : LANG_NAMES_PROD; return ( <div class="dropdown is-active "> @@ -61,7 +70,7 @@ export function LangSelector(): VNode { <div class="icon is-small is-left"> <img src={langIcon} /> </div> - <span>{getLangName(lang)}</span> + <span>{getLangName(names, lang)}</span> <div class="icon is-right"> <i class="mdi mdi-chevron-down" /> </div> @@ -82,7 +91,7 @@ export function LangSelector(): VNode { setUpdatingLang(false); }} > - {getLangName(l)} + {getLangName(names, l)} </a> ))} </div>