uploader-bot/app/core/translation.py

29 lines
821 B
Python

import gettext
from app.core.logger import make_log
def get_translator(lang_code: str, domain='sanic_telegram_bot'):
localedir = 'locale'
try:
return gettext.translation(domain, localedir, languages=[lang_code])
except FileNotFoundError:
return get_translator('en', domain=domain)
class TranslationCore:
@property
def translator(self):
return get_translator(self.lang_code or 'en', domain=self.LOCALE_DOMAIN)
def translated(self, message, **format_kwargs):
try:
message = self.translator.gettext(message)
if format_kwargs:
message = message.format(**format_kwargs)
except BaseException as e:
make_log("User.translated", f"Error translating message ({self.lang_code}): {e}")
return message