فهرست منبع

Add new language version.

cixo 1 سال پیش
والد
کامیت
542b1344ac
1فایلهای تغییر یافته به همراه40 افزوده شده و 8 حذف شده
  1. 40 8
      cx_newsletter_importer/language.py

+ 40 - 8
cx_newsletter_importer/language.py

@@ -1,12 +1,44 @@
-import json
+from . import logger
+
+import getttext
 
 class language:
-    def __init__(self, languages, logger):
-        self.logger = logger
+    def __init__(self, domain = None, path = None):
+        if domain is None:
+            domain = "cx-newsletter-importer"
+
+        if path is None:
+            path = "./langugage/"
+
+        self.domain = domain
+        self.path = path
+        self.logger = logger.loader().get()
+      
+        self.prepare_gettext()
+
+    def prepare_gettext(self):
+        self.logger.info("Loading language to gettext")
+        self.logger.info("Language text domain: " + domain)
+        self.logger.info("Language path: " + path)
+
+        gettext.bindtextdomain(self.domain, self.path)
+        gettext.textdomain(self.domain)
+
+
+class loader:
+    _language = None
+
+    def get():
+        if loader._language is None:
+            Exception("Language must be set in loader first.")
+
+        return loader._language
+
+    def set(new_language):
+        if type(new_language) is not language:
+            Exception("Language is not language class.")
 
-        try:
-            with open(languages) as languages_file:
-                self.languages = json.loads(languages_file.read())
-        
-        except:
+        loader.language = new_language
 
+    def __init__(self):
+        Exception("Loader is static class.")