Statistics
| Branch: | Tag: | Revision:

root / ui / i18n.py @ 67679131

History | View | Annotate | Download (858 Bytes)

1 edda4d30 Markos Gogoulos
from django import http
2 edda4d30 Markos Gogoulos
from django.conf import settings
3 e646ebe5 Dimitris Moraitis
from django.utils.translation import activate, to_locale
4 e646ebe5 Dimitris Moraitis
from django.utils.translation import check_for_language, get_language
5 e646ebe5 Dimitris Moraitis
6 edda4d30 Markos Gogoulos
7 edda4d30 Markos Gogoulos
def set_language(request):
8 edda4d30 Markos Gogoulos
    """
9 edda4d30 Markos Gogoulos
    Django's set_language function adapted to serve GET instead of POST
10 edda4d30 Markos Gogoulos
    """
11 edda4d30 Markos Gogoulos
    next = request.REQUEST.get('next', None)
12 edda4d30 Markos Gogoulos
    if not next:
13 edda4d30 Markos Gogoulos
        next = request.META.get('HTTP_REFERER', None)
14 edda4d30 Markos Gogoulos
    if not next:
15 edda4d30 Markos Gogoulos
        next = '/'
16 edda4d30 Markos Gogoulos
    response = http.HttpResponseRedirect(next)
17 edda4d30 Markos Gogoulos
    if request.method == 'GET':
18 edda4d30 Markos Gogoulos
        lang_code = request.GET.get('l', None)
19 edda4d30 Markos Gogoulos
        if lang_code and check_for_language(lang_code):
20 edda4d30 Markos Gogoulos
            if hasattr(request, 'session'):
21 edda4d30 Markos Gogoulos
                request.session['django_language'] = lang_code
22 edda4d30 Markos Gogoulos
            else:
23 edda4d30 Markos Gogoulos
                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
24 edda4d30 Markos Gogoulos
    return response