Плохо читал документацию , сразу видно)
Покажи view.py. Там надо сохранять параметр в сессии.
Вот у меня в шаблоне форма:
{% load i18n %} <form action="{% url translation %}" method="POST">{% csrf_token %} {{ trans_form}} <input type="submit" value="{% trans 'Change' %}"> </form>
вот сама форма:
from django import forms from django.utils.translation import ugettext_lazy as _ from portfolio.settings import LANGUAGES class ChangeLang(forms.Form): lang = forms.ChoiceField(label=_('Language'), choices=LANGUAGES)
вот строка в urls.py:
url(r'^translate/$', 'myi18n.views.get_translation', name='translation'),
вот представление для переключения перевода:
from django.utils.translation import activate, check_for_language from django.shortcuts import redirect def get_translation(request): if request.POST: print request.items() lang = request.POST.get('lang') if lang and check_for_language(lang): if hasattr(request, 'session'): request.session['django_language'] = lang activate(lang) return redirect('show_main_page')
При этом раскладе у тебя указанный перевод будет сохраняться в сессии, те.е при переходе на другую страничку,например, перевод указанного языка останется. В самой форме будет слетать язык, но на механизм это не повлияет. Там уже настроишь сам…