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