from django.conf.urls.defaults import *
from django.utils.translation import check_for_language
from django import http

def set_language(request):
    """
    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 GET parameters.

    Revert to 0.96-style setting of django_language using GET.
    """
    lang_code = request.GET.get('language', None)
    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 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

urlpatterns = patterns('',
    (r'^setlang', set_language),
)

