Я просто переделал их метод для себя ….
from django.http import HttpResponseRedirect
from django.utils.translation import check_for_language
def set_language_get(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 request parameters.
Since this view changes how the user will see the
rest of the site, it must
only be accessed as a GET request. If called as a
POST 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 = 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(settings.LANGUAGE_COOKIE_NAME, lang_code)
return response
а в urls.py
from mysite.views import set_language_get
urlpatterns = patterns('',
(r'^lang/cur/', set_language_get),
)
и в шаблоне вот так
<ul>
{% for lang in LANGUAGES %}
{% ifequal lang.0 LANGUAGE_CODE %}
<li><b>{{ lang.1 }}</b></li>
{% else %}
<li><a href="lang/cur/?language={{ lang.0 }}">{{ lang.1 }}</a></li>
{% endifequal%}
{% endfor %}
</ul>