|
|
@@ -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.")
|