[Erp5-report] r17870 - /erp5/trunk/products/ERP5Type/tests/utils.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Nov 28 15:21:21 CET 2007
Author: jerome
Date: Wed Nov 28 15:21:21 2007
New Revision: 17870
URL: http://svn.erp5.org?rev=17870&view=rev
Log:
improve DummyLocalizer so that we can access translated messages in message
catalogs.
Modified:
erp5/trunk/products/ERP5Type/tests/utils.py
Modified: erp5/trunk/products/ERP5Type/tests/utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/utils.py?rev=17870&r1=17869&r2=17870&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/utils.py (original)
+++ erp5/trunk/products/ERP5Type/tests/utils.py Wed Nov 28 15:21:21 2007
@@ -70,18 +70,29 @@
class DummyMessageCatalog:
__allow_access_to_unprotected_subobjects__ = 1
+ def __init__(self):
+ self._translated = []
def gettext(self, word, *args, **kw):
+ self._translated.append(word)
return word
class DummyLocalizer:
"""A replacement for stock cookie - based localizer.
You can change the current language by calling 'changeLanguage'
+ You can access the translated messages in _translated attribute from erp5_ui
+ and erp5_content message catalogs. It's a list.
"""
__allow_access_to_unprotected_subobjects__ = 1
- erp5_ui = DummyMessageCatalog()
- erp5_catalog = DummyMessageCatalog()
+ erp5_ui = ui = DummyMessageCatalog()
+ erp5_content = content = DummyMessageCatalog()
+ default = DummyMessageCatalog()
lang = 'en'
+
+ def __getitem__(self, key):
+ if hasattr(self, key):
+ return getattr(self, key)
+ raise KeyError, key
def get_selected_language(self):
return self.lang
@@ -94,8 +105,21 @@
def changeLanguage(self, lang):
self.lang = lang
- def translate(self, word, *args, **kw):
- return word
+ def translate(self, domain, msgid, lang=None, mapping=None, *args, **kw):
+ params = dict()
+ for key in ('lang', 'add', 'default'):
+ if key in kw:
+ params[key] = kw[key]
+ if lang is not None:
+ params['lang'] = lang
+ if 'target_language' in kw:
+ params['lang'] = kw['target_language']
+ msg = getattr(self, domain, self.default).gettext(msgid, **params)
+ if mapping:
+ # this is a simpler version that does not handle unicode
+ from string import Template
+ return Template(msg).substitute(mapping)
+ return msg
def __call__(self, request, context):
# the before traverse hook
More information about the Erp5-report
mailing list