src/pyams_i18n/attr.py
changeset 80 e431dcf09302
parent 9 017ad36cc2ba
equal deleted inserted replaced
79:4a135b8408d2 80:e431dcf09302
    48         if not isinstance(result, dict):
    48         if not isinstance(result, dict):
    49             return default
    49             return default
    50         if lang is None:
    50         if lang is None:
    51             if request is None:
    51             if request is None:
    52                 request = check_request()
    52                 request = check_request()
    53             lang = request.locale_name
    53             lang = request.params.get('lang') or request.locale_name
    54         return result.get(lang, default)
    54         return result.get(lang, default)
    55 
    55 
    56     def query_attribute(self, attribute, lang=None, request=None):
    56     def query_attribute(self, attribute, lang=None, request=None):
    57         result = getattr(self.context, attribute)
    57         result = getattr(self.context, attribute)
    58         if not isinstance(result, dict):
    58         if not isinstance(result, dict):
    59             return result
    59             return result
    60         if lang is None:
    60         if lang is None:
    61             if request is None:
    61             if request is None:
    62                 request = check_request()
    62                 request = check_request()
    63             lang = request.locale_name
    63             lang = request.params.get('lang') or request.locale_name
    64         value = result.get(lang)
    64         value = result.get(lang)
    65         if not value:
    65         if not value:
    66             negotiator = query_utility(INegotiator)
    66             negotiator = query_utility(INegotiator)
    67             if (negotiator is not None) and (negotiator.server_language != lang):
    67             if (negotiator is not None) and (negotiator.server_language != lang):
    68                 value = result.get(negotiator.server_language)
    68                 value = result.get(negotiator.server_language)