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