From 5d2c8369389013895264caf16e71d44bddabb22c Mon Sep 17 00:00:00 2001 From: physcik Date: Sat, 11 Apr 2026 16:40:22 +0500 Subject: Language toggle --- front/src/Locales/Locales.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 front/src/Locales/Locales.ts (limited to 'front/src/Locales/Locales.ts') diff --git a/front/src/Locales/Locales.ts b/front/src/Locales/Locales.ts new file mode 100644 index 0000000..af76045 --- /dev/null +++ b/front/src/Locales/Locales.ts @@ -0,0 +1,30 @@ +import { createContext } from 'vm'; +import { LanguageContext } from './Context'; +import en_us from './en_US'; +import Language from './Language'; +import ru_ru from './ru_RU'; + + +const defaultLocale: Language = en_us; + +const nameToLocale = new Map([ + ['en', en_us], + ['ru', ru_ru], +]); + +function getCurrentLocale(lang: string): Language { + const outp = nameToLocale.get(lang); + if (outp == undefined) return defaultLocale; + return outp; +} + +export function GetString(query: string, lang: string): string { + const locale = getCurrentLocale(lang); + const found = locale.LocalizedStrings.get(query); + if (found == undefined) return defaultLocale.LocalizedStrings.get(query) || query; + return found; +} + +export function SetLocale(locale: string, setLang: (x: string) => void) { + if (nameToLocale.has(locale)) setLang(locale); +} -- cgit v1.3