Opened 12 years ago
Closed 12 years ago
#21617 closed Bug (needsinfo)
Impossible to change the language settings with a logged user
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | Internationalization | Version: | 1.6 |
| Severity: | Normal | Keywords: | Internationalization |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Hello, using
django.views.i18n.set_language()
I am not able to change the current language settings. It is always set to 'en' once the user is logged, no matter what I have in my LANGUAGE_CODE or what is in the request header (accept language from the browser).
I use the form as described in the documentation (This little snippet was working with django 1.5.4.) :
<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}>
{{ language.name_local }} ({{ language.code }})
</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
And it is not working, the language remain 'en'.
I followed the code, this line is executed from django.views.i18n.set_language()
request.session['django_language'] = lang_code
but afterward, it looks like it's overwritten somewhere.
Event setting manually the 'django_language' in the session, does not solve the problem.
Updating django to 1.6.1 does not solve the problem as well.
I guess that having a small test project to reproduce this would be useful.