首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改Django管理语言?

如何更改Django管理语言?
EN

Stack Overflow用户
提问于 2014-01-31 07:14:31
回答 3查看 17K关注 0票数 18

我有一个Django1.6网站与i18n的工作。我可以使用模板顶部的选择框来更改前端语言,但我不知道是否有django应用程序或技巧来更改管理语言,因为它似乎存储在会话变量中的某个地方,并且它保留了我在前端使用的第一种语言。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-31 07:53:41

您可以使用i18n_patterns创建/en/admin/fr/admin/

代码语言:javascript
复制
urlpatterns += i18n_patterns(
    url(r'^admin/', include(admin.site.urls)),
)

(对于Django <= 1.7,必须指定前缀,使用i18n_patterns('', ... ))

票数 16
EN

Stack Overflow用户

发布于 2015-10-01 01:34:58

在你的settings.py中,只需将'django.middleware.locale.LocaleMiddleware'添加到你的MIDDLEWARE_CLASSES设置中,确保它出现在'django.contrib.sessions.middleware.SessionMiddleware'之后。

票数 24
EN

Stack Overflow用户

发布于 2019-10-31 05:58:35

以下是来自admin/base.html的Django docs的代码片段的略微修改版本,它添加了一个语言选择下拉列表:

代码语言:javascript
复制
{% 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

代码语言:javascript
复制
path('i18n/', include('django.conf.urls.i18n')),
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21469470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档