summaryrefslogtreecommitdiff
path: root/front/src/Locales/Locales.ts
blob: 6e6a33ed6e07f1ed6ef9a29b1ab4d5244203b618 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { AllowedLanguages } 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<string, Language>([
    ['en', en_us],
    ['ru', ru_ru],
]);

function getCurrentLocale(lang: AllowedLanguages): Language {
    const outp = nameToLocale.get(lang);
    if (outp == undefined) return defaultLocale;
    return outp;
}

export function GetLocalizedString(query: string, lang: AllowedLanguages): string {
    query = query.toLowerCase();
    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);
}

const StorageLanguageName = "language";

export function SaveCurrentLocale(lang: AllowedLanguages) {
    localStorage.setItem(StorageLanguageName, lang)
}

export function ReadCurrentLocale(): AllowedLanguages {
    return localStorage.getItem(StorageLanguageName) as AllowedLanguages || "en"; 
}