diff options
Diffstat (limited to 'raveos-center/raveos_center/forditas.py')
| -rw-r--r-- | raveos-center/raveos_center/forditas.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/raveos-center/raveos_center/forditas.py b/raveos-center/raveos_center/forditas.py new file mode 100644 index 0000000..b521a02 --- /dev/null +++ b/raveos-center/raveos_center/forditas.py @@ -0,0 +1,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 |