我阅读了教程in Django site,但我不明白如何使用set_language()函数。例如,我有一个演示如下:
的index.html
{% trans "Hello World." %}
<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="/next/page/" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}">{{ language.name_local }} ({{ language.code}})</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
urls.py
urlpatterns = patterns('',
(r'^i18n/', include('django.conf.urls.i18n')),
)
views.py
What need I write to display the languages, which were chosen from user in this file?
谢谢,
Thinh的
答案 0 :(得分:4)
使用您正在使用的代码,您无需编写自己的视图。表单将向/ i18n / setlang /发出POST请求,语言代码和(可选)重定向到(下一页)页面作为参数。
django视图执行以下操作(来自django文档)
Django在POST数据中查找下一个参数。 - 如果它不存在,或者为空,Django会在Referrer标头中尝试URL。 - 如果那是空的 - 比如,如果用户的浏览器抑制了该标题 - 那么用户将被重定向到/(站点根目录)作为后备。
因此,实质上,用户将在提交表单后重定向,而django视图将根据提交的内容为该用户设置语言。
希望这有帮助,
霍夫