aboutsummaryrefslogtreecommitdiff
path: root/test-client/locale.ts
blob: 61d083b418dbb322e9ff97fd5674a7f5bec5d9e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let TR: { [key: string]: string } = {}
export async function init_locale(lang: string) {
    const res = await fetch(`/locale/${encodeURIComponent(lang)}.json`, { headers: { "Accept": "application/json" } })
    if (!res.ok) throw new Error("language pack download failed");
    TR = await res.json()
}

export function tr(key: string, ...args: string[]): string {
    let s = TR[key] ?? key;
    if (args.length)
        s = s.replace(/%(s|i)/ig, () => args.shift() ?? "[not provided]")
    return s
}