我做了一个语言选择器,从文档中可以看到,当我运行服务器时,我可以切换到英语和荷兰语。但是,当我尝试切换到中文时,它又回到了英文。导航条.html:
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" />
<select name="language" onclick="Bonjour">
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% 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>
Settings.py:
MIDDLEWARE = [
...
"django.middleware.locale.LocaleMiddleware",
...
]
...
# Translations
USE_I18N = True
USE_L10N = True
LANGUAGES = (
("en", u"English"),
("zh-cn", u"简体中文"),
('de', u"German"),
)
...
Locale Paths:我有荷兰语和中文。它们在路径中的 locales/
和文件夹被称为 de
和 zh-cn
. 如果你需要看更多的代码,请告诉我,从哪里看。
正如Gasman所说 "我不太了解细节,但我知道zh-cn已经被废弃了--见 github.comwagtailwagtailissues3668。. 或许将其改为 zh-hans
会有用吗?" 换成 zh-hans
就像这样的工作,并确保你命名的locale文件夹和语言名称在 settings.py
.