我读了一个教程 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?
谢谢
细
最佳答案
根据您正在使用的代码,您无需编写自己的 View 。该表单将向/i18n/setlang/发出 POST 请求,并以语言代码和(可选)重定向到(下一个)页面作为参数。
django View 执行以下操作(来自 django 文档)
Django 在 POST 数据中查找下一个参数。 - 如果不存在或者为空,Django 会尝试 Referrer header 中的 URL。 - 如果它是空的 - 比如说,如果用户的浏览器禁止该 header - 那么用户将被 - 重定向到/(网站根目录)作为后备。
因此本质上,用户在提交表单后将被重定向,并且 django View 将根据提交的内容为该用户设置语言。
希望这有帮助,
霍夫
关于django - 如何使用 django.views.i18n.set_language() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993689/