File size: 787 Bytes
eefa5fd |
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 |
import yaml
from pathlib import Path
class Translator:
def __init__(self):
self.languages = {}
self.load_languages()
def load_languages(self):
lang_dir = Path("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:
return self.get(key, "en", **kwargs)
transdev = Translator() |