summaryrefslogtreecommitdiff
path: root/raveos-center/raveos_center/forditas.py
blob: b521a02538e5339a29fbe4f892c9af1bb0102abc (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
import json
import os
from pathlib import Path

NYELVEK = ("hu", "en", "de")


def _nyelv():
    for valtozo in ("RAVEOS_CENTER_LANG", "LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG"):
        ertek = os.environ.get(valtozo, "")
        if not ertek or ertek in ("C", "POSIX") or ertek.startswith("C."):
            continue
        kod = ertek.split(":")[0][:2].lower()
        return kod if kod in NYELVEK else "en"
    return "hu"


NYELV = _nyelv()
_tabla = {}
if NYELV != "hu":
    try:
        _tabla = json.loads((Path(__file__).parent / "forditasok.json").read_text(encoding="utf-8"))
    except (OSError, ValueError):
        _tabla = {}


def tr(szoveg, *ertekek):
    sor = _tabla.get(szoveg, {})
    forditott = sor.get(NYELV) or sor.get("en") or szoveg
    return forditott.format(*ertekek) if ertekek else forditott