Change locale for django-admin-tools

℡╲_俬逩灬. 提交于 2019-12-03 15:08:44

You need to set the language specifically for the admin app. Since django does not provide a language drop down as part of the default login, you have a few options:

  1. Login to your normal (non admin view), with superuser/staff credentials and the correct language, then shift over to the admin URL.

  2. Update the admin templates and add a language dropdown see this snippet.

  3. Create some custom middleware to set the language for 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
    

    Add it to your MIDDLEWARE_CLASSES

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

    Set the language you want for the admin in settings.py:

    ADMIN_LANGUAGE_CODE = 'ru-RU'
    

Check if you have translation and localization enabled in your settings.py:

USE_I18N = True
USE_L10N = True

Also check if you have the translation file (.mo, .po) for russian.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!