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 |