diff options
| author | Ivan Alejandro <ivanalejandro0@yahoo.com.ar> | 2013-06-27 15:33:57 -0300 | 
|---|---|---|
| committer | Ivan Alejandro <ivanalejandro0@yahoo.com.ar> | 2013-06-27 16:08:33 -0300 | 
| commit | 3a4906638909729236b693fb21a4b1b7194344b5 (patch) | |
| tree | 25f0fbc3742384f046e90969392e1dba05a66d26 /src | |
| parent | fbd0a8d86232e0e6d717d8c3fc5ace88e167eb74 (diff) | |
Bugfix: use the provider's default language as default string
Also take care (and note) a possible case with a problematic provider
misconfiguration.
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/common/config/baseconfig.py | 23 | 
1 files changed, 18 insertions, 5 deletions
| diff --git a/src/leap/common/config/baseconfig.py b/src/leap/common/config/baseconfig.py index e6bd9c4..699d734 100644 --- a/src/leap/common/config/baseconfig.py +++ b/src/leap/common/config/baseconfig.py @@ -155,26 +155,39 @@ class LocalizedKey(object):      def __init__(self, func, **kwargs):          self._func = func -    def __call__(self, instance, lang="en"): +    def __call__(self, instance, lang=None):          """          Tries to return the string for the specified language, otherwise -        informs the problem and returns an empty string. +        returns the default language string.          :param lang: language code          :type lang: str          :return: localized value from the possible values returned by                   self._func +                 It returns None in case that the provider does not provides +                 a matching pair of default_language and string for +                 that language. +                 e.g.: +                     'default_language': 'es', +                     'description': {'en': 'test description'} +                Note that the json schema can't check that.          """          descriptions = self._func(instance) -        description_lang = "" -        config_lang = "en" +        config_lang = instance.get_default_language() +        if lang is None: +            lang = config_lang +          for key in descriptions.keys():              if lang.startswith(key):                  config_lang = key                  break -        description_lang = descriptions[config_lang] +        description_lang = descriptions.get(config_lang) +        if description_lang is None: +            logger.error("There is a misconfiguration in the " +                         "provider's language strings.") +          return description_lang      def __get__(self, instance, instancetype): | 
