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
This commit is contained in:
David Rousselie
2007-03-20 18:22:42 +01:00
parent 352cfc921b
commit 76cf0cfa9d
3 changed files with 11 additions and 7 deletions

View File

@@ -77,7 +77,8 @@ class JCLComponent(Component, object):
port, port,
db_connection_str, db_connection_str,
disco_category = "gateway", disco_category = "gateway",
disco_type = "headline"): disco_type = "headline",
lang = Lang()):
Component.__init__(self, \ Component.__init__(self, \
JID(jid), \ JID(jid), \
secret, \ secret, \
@@ -96,7 +97,7 @@ class JCLComponent(Component, object):
self.queue = Queue(100) self.queue = Queue(100)
self.__logger = logging.getLogger("jcl.jabber.JCLComponent") self.__logger = logging.getLogger("jcl.jabber.JCLComponent")
self.lang = Lang() self.lang = lang
self.running = False self.running = False
self.wait_event = threading.Event() self.wait_event = threading.Event()

View File

@@ -29,6 +29,7 @@ __revision__ = "$Id: feeder.py,v 1.3 2005/09/18 20:24:07 dax Exp $"
import logging import logging
from jcl.jabber.component import JCLComponent from jcl.jabber.component import JCLComponent
from jcl.lang import Lang
class FeederComponent(JCLComponent): class FeederComponent(JCLComponent):
"""Implement a feeder sender behavior based on the """Implement a feeder sender behavior based on the
@@ -40,13 +41,15 @@ class FeederComponent(JCLComponent):
secret, secret,
server, server,
port, port,
db_connection_str): db_connection_str,
lang = Lang()):
JCLComponent.__init__(self, \ JCLComponent.__init__(self, \
jid, \ jid, \
secret, \ secret, \
server, \ server, \
port, \ port, \
db_connection_str) db_connection_str, \
lang)
self.name = "Generic Feeder Component" self.name = "Generic Feeder Component"
# Define default feeder and sender, can be override # Define default feeder and sender, can be override
self.feeder = Feeder() self.feeder = Feeder()

View File

@@ -54,9 +54,9 @@ class Lang:
""" """
if lang is not None: if lang is not None:
lang = lang[:2] lang = lang[:2]
if hasattr(Lang, lang): if hasattr(self.__class__, lang):
return getattr(Lang, lang) return getattr(self.__class__, lang)
return getattr(Lang, self.default_lang) return getattr(self.__class__, self.default_lang)
def get_lang_class_from_node(self, node): def get_lang_class_from_node(self, node):
"""Return lang class from XML node. """Return lang class from XML node.