When using the 'set_language redirect view' along with newforms, where the newform fields' labels are marked with gettext_lazy, after the view is reloaded, the fields' labels are still in the original language (while template internationalized string are actualized).
Example code for the form:
from django import newforms as forms
from django.utils.translation import gettext_lazy as _
class GetInForm(forms.Form):
name = forms.CharField(label=_('Name'), max_length=30)
password = forms.CharField(label=_('Password'),
widget=forms.PasswordInput(render_value=False))
View code:
from django.shortcuts import render_to_response
from django.template import RequestContext
import GetInForm
def getin(request):
return render_to_response('template_name',
{'test': _('Hello'), 'form': GetInForma().as_p()},
context_instance=RequestContext(request))
Inside the template, the set_language redirect view' is used. Hello is translated, but the form labels no.