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,
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()

View File

@@ -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()

View File

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