From 76cf0cfa9d682a8dd8177b8a4229f28b918e98b0 Mon Sep 17 00:00:00 2001 From: David Rousselie Date: Tue, 20 Mar 2007 18:22:42 +0100 Subject: [PATCH] modifiable component default lang attribut JCLComponent constructor takes an optional lang parameter to override default jcl.lang.Lang class. Typical usage is in derived component classes which has a derived (from jcl.lang.Lang) Lang class. darcs-hash:20070320172242-86b55-7f2552cd27d8c6990c7f9fea9d4fcdccafabe4ff.gz --- src/jcl/jabber/component.py | 5 +++-- src/jcl/jabber/feeder.py | 7 +++++-- src/jcl/lang.py | 6 +++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/jcl/jabber/component.py b/src/jcl/jabber/component.py index 33aec3c..db33468 100644 --- a/src/jcl/jabber/component.py +++ b/src/jcl/jabber/component.py @@ -77,7 +77,8 @@ class JCLComponent(Component, object): port, db_connection_str, disco_category = "gateway", - disco_type = "headline"): + disco_type = "headline", + lang = Lang()): Component.__init__(self, \ JID(jid), \ secret, \ @@ -96,7 +97,7 @@ class JCLComponent(Component, object): self.queue = Queue(100) self.__logger = logging.getLogger("jcl.jabber.JCLComponent") - self.lang = Lang() + self.lang = lang self.running = False self.wait_event = threading.Event() diff --git a/src/jcl/jabber/feeder.py b/src/jcl/jabber/feeder.py index f7c205a..b82b153 100644 --- a/src/jcl/jabber/feeder.py +++ b/src/jcl/jabber/feeder.py @@ -29,6 +29,7 @@ __revision__ = "$Id: feeder.py,v 1.3 2005/09/18 20:24:07 dax Exp $" import logging from jcl.jabber.component import JCLComponent +from jcl.lang import Lang class FeederComponent(JCLComponent): """Implement a feeder sender behavior based on the @@ -40,13 +41,15 @@ class FeederComponent(JCLComponent): secret, server, port, - db_connection_str): + db_connection_str, + lang = Lang()): JCLComponent.__init__(self, \ jid, \ secret, \ server, \ port, \ - db_connection_str) + db_connection_str, \ + lang) self.name = "Generic Feeder Component" # Define default feeder and sender, can be override self.feeder = Feeder() diff --git a/src/jcl/lang.py b/src/jcl/lang.py index 2f9f7bf..f6ef635 100644 --- a/src/jcl/lang.py +++ b/src/jcl/lang.py @@ -54,9 +54,9 @@ class Lang: """ if lang is not None: lang = lang[:2] - if hasattr(Lang, lang): - return getattr(Lang, lang) - return getattr(Lang, self.default_lang) + if hasattr(self.__class__, lang): + return getattr(self.__class__, lang) + return getattr(self.__class__, self.default_lang) def get_lang_class_from_node(self, node): """Return lang class from XML node.