akn-dev / akn /langs /__init__.py
randydev's picture
fix update
f1d0d2d
raw
history blame contribute delete
876 Bytes
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()