from enum import Enum from bot.i18n.strings import STRINGS class Lang(Enum): EN = "en" RU = "ru" def t(key: str, lang: Lang | str = Lang.EN, **kwargs: object) -> str: if isinstance(lang, Lang): lang_str = lang.value elif lang in ("en", "ru"): lang_str = lang else: lang_str = "en" entry = STRINGS.get(key) if not entry: return key text = entry.get(lang_str, entry.get("en", key)) if kwargs: text = text.format(**kwargs) return text def detect_lang(language_code: str | None) -> Lang: if language_code and language_code.startswith("ru"): return Lang.RU return Lang.EN