|
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() |