Files
katrain-qt/katrain/core/lang.py
T

40 lines
1.1 KiB
Python

import gettext
import os
from katrain.core.utils import find_package_resource
class Lang:
FONTS = {"jp": "NotoSansJP-Regular.otf", "tr": "NotoSans-Regular.ttf", "ua": "NotoSans-Regular.ttf"}
def __init__(self, lang):
self.lang = None
self.switch_lang(lang)
def _(self, text):
return self.ugettext(text)
def switch_lang(self, lang):
if lang == self.lang:
return
# get the right locales directory, and instantiate a gettext
self.lang = lang
self.font_name = self.FONTS.get(lang)
i18n_dir, _ = os.path.split(find_package_resource("katrain/i18n/__init__.py"))
locale_dir = os.path.join(i18n_dir, "locales")
locales = gettext.translation("katrain", locale_dir, languages=[lang, DEFAULT_LANGUAGE])
self.ugettext = locales.gettext
DEFAULT_LANGUAGE = "en"
i18n = Lang(DEFAULT_LANGUAGE)
def rank_label(rank):
if rank is None:
return "??k"
if rank >= 0.5:
return f"{rank:.0f}{i18n._('strength:dan')}"
else:
return f"{1-rank:.0f}{i18n._('strength:kyu')}"