Ejemplo n.º 1
0
def set_lang(request):
    """Set current language
    
    """
    lang = request.matchdict['lang'].lower()
    langs = dict(request.registry.settings['available_langs'])
    if lang not in langs:
        raise HTTPBadRequest('Not supported language %r' % lang)
    
    referrer = request.referer
    my_url = request.route_url('front.set_lang', lang=lang)
    if referrer == my_url or not referrer:
        # never use the set_lang itself as came_from
        # which could lead to a infinite loop
        referrer = '/'  
    came_from = request.params.get('came_from', referrer)
    response = HTTPFound(location=came_from)
    response.set_cookie('_LOCALE_', normalize_locale_name(lang))
    return response