40 lines
1003 B
Python
Raw Normal View History

2023-12-24 16:58:09 +08:00
import gettext
2024-01-05 12:27:57 +08:00
import os
2023-12-24 16:58:09 +08:00
from enum import Enum
class TUILanguage(Enum):
EN = ("en", "English")
ZH = ("zh", "Chinese")
Other = ("en", "English") # default to show English
2023-12-24 16:58:09 +08:00
@classmethod
def from_str(cls, language: str) -> "TUILanguage":
if language.lower().startswith("en"):
2023-12-24 16:58:09 +08:00
return cls.EN
elif language.lower().startswith("zh"):
2023-12-24 16:58:09 +08:00
return cls.ZH
else:
return cls.Other
@property
def language_code(self) -> str:
return self.value[0]
@property
def chat_language(self) -> str:
return self.value[1]
2023-12-24 16:58:09 +08:00
def get_translation(tui_lang: TUILanguage) -> gettext.gettext:
"""
Get the translation function for the given language.
"""
localdir = os.path.join(os.path.dirname(__file__), "locales")
lang_translations = gettext.translation(
"base", localedir=localdir, languages=[tui_lang.language_code]
2023-12-24 16:58:09 +08:00
)
lang_translations.install()
return lang_translations.gettext