【问题标题】:Change locale for django-admin-tools更改 django-admin-tools 的语言环境
【发布时间】:2012-06-25 23:59:51
【问题描述】:

在我的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

【问题讨论】:

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


    【解决方案1】:

    检查您的settings.py 中是否启用了翻译和本地化:

    USE_I18N = True
    USE_L10N = True
    

    还要检查您是否有俄语的翻译文件(.mo.po)。

    【讨论】:

    • 是的,我有这些台词。 .mo 和 .po 文件存在于站点包中。
    【解决方案2】:

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

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

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

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

      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'
      

    【讨论】:

    • 谢谢,看来这是我需要的!
    • 您好,感谢您的回答。我正在尝试您的 [3],但无法包含中间件,您将文件放在哪里?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多