From 402d9c0255cacf7b0cfe62abd59828b68c12eea3 Mon Sep 17 00:00:00 2001 From: Yoshinori Okuji <yo@nexedi.com> Date: Tue, 18 Dec 2007 00:12:30 +0000 Subject: [PATCH] Small optimization. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@18373 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/patches/Localizer.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/product/ERP5Type/patches/Localizer.py b/product/ERP5Type/patches/Localizer.py index c2a24da34e..31be095061 100644 --- a/product/ERP5Type/patches/Localizer.py +++ b/product/ERP5Type/patches/Localizer.py @@ -48,29 +48,34 @@ def Localizer_translate(self, domain, msgid, lang=None, mapping=None, *args, **k # Get the Localizer catalog id catalog_id = message_catalog_aliases.get(domain, domain) - if catalog_id not in self.objectIds(): + catalog_obj = self._getOb(catalog_id, None) + if catalog_obj is None: # No catalog found: use the default one - catalog_id = 'default' - catalog_obj = self[catalog_id] + catalog_obj = self['default'] # Call the Message Catalog gettext method params = {} - for key in ('lang', 'add', 'default'): - if key in kw: + for key in ('add', 'default'): + try: params[key] = kw[key] + except KeyError: + pass if lang is not None: params['lang'] = lang - if 'target_language' in kw: - params['lang'] = kw['target_language'] + else: + try: + params['lang'] = kw['target_language'] + except KeyError: + pass translated_str = catalog_obj.gettext(msgid, **params) # Map the translated string with given parameters - if type(mapping) is type({}) and len(mapping): + if isinstance(mapping, dict) and mapping: unicode_mapping = {} if not isinstance(translated_str, unicode): translated_str = translated_str.decode('utf8') # make sure all values in the mapping are unicode - for k, v in mapping.items(): + for k, v in mapping.iteritems(): if isinstance(v, str): v = v.decode('utf8') elif isinstance(v, Message): -- 2.30.9