更改django-admin-tools的区域设置

时间:2012-06-24 12:10:43

标签: python django internationalization django-admin django-admin-tools

在我的settings.py文件中,我有:

LANGUAGE_CODE = 'ru-RU'

另外,我已经安装并使用了django-admin-tools。但管理语言仍然是英语。我做错了什么?

PS。

$ cat settings.py | grep USE | grep -v USER
USE_I18N = True
USE_L10N = True
USE_TZ = True

2 个答案:

答案 0 :(得分:8)

您需要专门为管理员应用设置语言。由于django不提供语言下拉作为默认登录的一部分,因此您有以下几种选择:

  1. 使用超级用户/员工凭据和正确的语言登录正常(非管理员视图),然后切换到管理员URL。

  2. 更新管理模板并添加语言下拉列表see this snippet

  3. 创建一些自定义中间件来设置admin的语言:

    from django.conf import settings
    from django.utils import translation
    
    class AdminLocaleMiddleware:
    
        def process_request(self, request):
            if request.path.startswith('/admin'):
                request.LANG = getattr(settings, 'ADMIN_LANGUAGE_CODE',
                                       settings.LANGUAGE_CODE)
                translation.activate(request.LANG)
                request.LANGUAGE_CODE = request.LANG
    

    将其添加到您的MIDDLEWARE_CLASSES

    MIDDLEWARE_CLASSES = {
        # ...
        'foo.bar.AdminLocaleMiddleware',
        # ...
    }
    

    settings.py中为管理员设置所需的语言:

    ADMIN_LANGUAGE_CODE = 'ru-RU'
    

答案 1 :(得分:0)

检查您的settings.py

是否启用了翻译和本地化功能
USE_I18N = True
USE_L10N = True

另请检查您是否拥有俄语的翻译文件(.mo.po)。