--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/views/i18n.py Mon Nov 23 15:14:29 2009 +0100
@@ -0,0 +1,34 @@
+from django import http
+from django.utils.translation import check_for_language, activate, to_locale, get_language
+from django.utils.text import javascript_quote
+from django.conf import settings
+import os
+import gettext as gettext_module
+
+# taken from django/views/i18n.py
+# to allow GET change (flickr does it)
+def set_language(request, lang_code):
+ """
+ Redirect to a given url while setting the chosen language in the
+ session or cookie. The url and the language code need to be
+ specified in the request parameters.
+
+ Since this view changes how the user will see the rest of the site, it must
+ only be accessed as a POST request. If called as a GET request, it will
+ redirect to the page in the request (the 'next' parameter) without changing
+ any state.
+ """
+ next = request.REQUEST.get('next', None)
+ if not next:
+ next = request.META.get('HTTP_REFERER', None)
+ if not next:
+ next = '/'
+ response = http.HttpResponseRedirect(next)
+ if request.method == 'GET':
+ #lang_code = request.GET.get('language', None)
+ if lang_code and check_for_language(lang_code):
+ if hasattr(request, 'session'):
+ request.session['django_language'] = lang_code
+ else:
+ response.set_cookie('django_language', lang_code)
+ return response