我有一个使用django 1.6的网站,其中i18n已经启用。我可以通过模板顶部的下拉框更改前端语言,但我不知道是否有django应用程序或技巧可以更改管理界面的语言,因为它似乎存储在会话变量中,并且保留了我在前端使用的第一种语言。
我有一个使用django 1.6的网站,其中i18n已经启用。我可以通过模板顶部的下拉框更改前端语言,但我不知道是否有django应用程序或技巧可以更改管理界面的语言,因为它似乎存储在会话变量中,并且保留了我在前端使用的第一种语言。
在你的settings.py文件中,只需将'django.middleware.locale.LocaleMiddleware'
添加到你的MIDDLEWARE_CLASSES
设置中,并确保它出现在'django.contrib.sessions.middleware.SessionMiddleware'
之后。
您可以使用i18n_patterns
创建/en/admin
、/fr/admin/
等:
urlpatterns += i18n_patterns(
url(r'^admin/', include(admin.site.urls)),
)
admin/base.html
,它添加了一个语言选择下拉菜单:{% extends "admin/base.html" %}
{% load i18n %}
{% block userlinks %}
{{ block.super }}
/ <form action="{% url 'set_language' %}" method="post" style="display:inline">{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}">
<select name="language" onchange="this.form.submit()">
{% 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{% endif %}>
{{ language.name_local }} ({{ language.code }})
</option>
{% endfor %}
</select>
</form>
{% endblock %}
为了使其正常工作,您还需要将以下内容添加到您的urlpatterns
中:
path('i18n/', include('django.conf.urls.i18n')),
SessionMiddleware
后面添加django.middleware.locale.LocaleMiddleware
,并在(本地创建的应用程序,并且该应用程序在admin
之前)templates/admin/base_site.html
中添加了上述代码。 - WBAR{% extends "admin/base.html" %} {% load i18n %}
- Vlax更改您的浏览器默认语言。
不要破坏代码。例如,
Chrome -> 设置 -> 语言 -> 首选语言:将所需的语言移动到上方。
刷新浏览器,管理员面板将更改显示的语言。