浏览代码

Add new items to language.

cixo 1 年之前
父节点
当前提交
4cef2fca19
共有 3 个文件被更改,包括 49 次插入6 次删除
  1. 2 0
      core.py
  2. 34 6
      cx_newsletter_importer/language.py
  3. 13 0
      cx_newsletter_importer/ui.py

+ 2 - 0
core.py

@@ -1,9 +1,11 @@
 from cx_newsletter_importer import ui
 from cx_newsletter_importer.gtk import Gtk
 from cx_newsletter_importer import logger
+from cx_newsletter_importer import language
 
 if __name__ == "__main__":
     logger.loader.set(logger.stdio_logger())
+    language.loader.set(language.gettext_parser())
 
     app = ui.app()
     app.show_all()

+ 34 - 6
cx_newsletter_importer/language.py

@@ -1,9 +1,32 @@
 from . import logger
 
-import getttext
+from abc import ABC, abstractmethod
+import gettext
 
-class language:
+class language(ABC):
+    def __init__(self):
+        self.logger = logger.loader.get()
+
+    def get(self, find):
+        if (self.exists(find)):
+            return self.translate(find)
+        
+        self.logger.warning("Can not translate: \"" + find + "\"")
+        return find
+
+    @abstractmethod
+    def exists(self, find):
+        pass
+
+    @abstractmethod
+    def translate(self, find):
+        pass
+
+
+class gettext_parser(language):
     def __init__(self, domain = None, path = None):
+        super().__init__()
+
         if domain is None:
             domain = "cx-newsletter-importer"
 
@@ -12,17 +35,22 @@ class language:
 
         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)
+        self.logger.info("Language text domain: " + self.domain)
+        self.logger.info("Language path: " + self.path)
 
         gettext.bindtextdomain(self.domain, self.path)
         gettext.textdomain(self.domain)
+    
+    def exists(self, fing):
+        return False
+
+    def translate(self, find):
+        return find
 
 
 class loader:
@@ -38,7 +66,7 @@ class loader:
         if type(new_language) is not language:
             Exception("Language is not language class.")
 
-        loader.language = new_language
+        loader._language = new_language
 
     def __init__(self):
         Exception("Loader is static class.")

+ 13 - 0
cx_newsletter_importer/ui.py

@@ -1,4 +1,5 @@
 from . import logger
+from . import language
 from .gtk import Gtk
 
 class app(Gtk.Window):
@@ -6,6 +7,8 @@ class app(Gtk.Window):
         super().__init__(title = "CxNewsletter Importer")
         
         self.logger = logger.loader.get()
+        self.language = language.loader.get()
+        self._ = self.language.get
 
         self.connect("destroy", self.close)
 
@@ -17,9 +20,19 @@ class app(Gtk.Window):
 
         self.logger.info("Window created.")
 
+        self.choose_source()
+
+    def clean():
+        while self.content.get_child_at(0, 0) is not None:
+            self.content.remove_row(0)
+
     def close(self, destination):
         self.logger.info("Closing app.")
         Gtk.main_quit(destination)
 
+    def choose_source(self):
+        self.title = Gtk.Label(label = self._("UwU"))
+        self.content.attach(self.title, 0, 0, 1, 1)
+
     def main(self):
         Gtk.main()