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