Pārlūkot izejas kodu

feat(translator): add default language

Librellium 2 dienas atpakaļ
vecāks
revīzija
68f9aaf83d
1 mainītis faili ar 9 papildinājumiem un 5 dzēšanām
  1. 9 5
      anonflow/translator/translator.py

+ 9 - 5
anonflow/translator/translator.py

@@ -7,14 +7,15 @@ from typing import Optional
 
 
 class Translator:
-    def __init__(self, translations_dir: Path):
+    def __init__(self, translations_dir: Path, default_language: str):
         self._translations_dir = translations_dir
+        self._default_language = default_language
 
     @staticmethod
     @lru_cache
-    def _get_translation(lang: str, domain: str, translations_dir: Path):
+    def _get_translation(language: str, domain: str, translations_dir: Path):
         translation = gettext.translation(
-            domain, translations_dir, languages=[lang], fallback=True
+            domain, translations_dir, languages=[language], fallback=True
         )
         return translation
 
@@ -22,9 +23,12 @@ class Translator:
     def _format(s: str, **context):
         return s.format_map(defaultdict(str, context))
 
-    async def get(self, lang: str = "ru", domain: str = "messages"):
+    async def get(self, language: Optional[str] = None, domain: str = "messages"):
         translator = await asyncio.to_thread(
-            self._get_translation, lang, domain, self._translations_dir
+            self._get_translation,
+            language or self._default_language,
+            domain,
+            self._translations_dir
         )
 
         def _(