src/pyams_i18n/expr.py
changeset 30 e82b56583f65
parent 9 017ad36cc2ba
child 31 65e4710b699f
equal deleted inserted replaced
29:1bf2c520ec6a 30:e82b56583f65
    27 def render_i18n_expression(econtext, name):
    27 def render_i18n_expression(econtext, name):
    28     """Render an I18n expression"""
    28     """Render an I18n expression"""
    29 
    29 
    30     name = name.strip()
    30     name = name.strip()
    31     if '.' in name:
    31     if '.' in name:
    32         context_name, attr = name.split('.')
    32         names = name.split('.')
       
    33         context = econtext.get(names[0])
       
    34         for name in names[1:-1]:
       
    35             context = getattr(context, name)
       
    36         attr = names[-1]
    33     else:
    37     else:
    34         context_name = 'context',
    38         context_name = 'context',
       
    39         context = econtext.get(context_name)
    35         attr = name
    40         attr = name
    36     context = econtext.get(context_name)
       
    37     request = econtext.get('request')
    41     request = econtext.get('request')
    38     return II18n(context).query_attribute(attr, request=request)
    42     return II18n(context).query_attribute(attr, request=request)
    39 
    43 
    40 
    44 
    41 class I18nExpr(ContextExprMixin, StringExpr):
    45 class I18nExpr(ContextExprMixin, StringExpr):