File size: 876 Bytes
e23a149 f1d0d2d e23a149 |
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 |
import yaml
from pathlib import Path
class Translator:
def __init__(self):
self.languages = {}
self.load_languages()
def load_languages(self):
lang_dir = Path("akn/langs")
for lang_file in lang_dir.glob("*.yml"):
with open(lang_file, 'r', encoding='utf-8') as f:
lang_code = lang_file.stem
self.languages[lang_code] = yaml.safe_load(f)
def get(self, key: str, lang: str = "en", **kwargs) -> str:
try:
parts = key.split('.')
value = self.languages[lang]
for part in parts:
value = value[part]
return value.format(**kwargs)
except KeyError:
if lang != "en":
return self.get(key, "en", **kwargs)
return f"[Translation missing: {key}]"
transdev = Translator() |