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