Change locale for django-admin-tools

我们两清 提交于 2019-12-21 04:51:33

问题


In my settings.py file I have:

LANGUAGE_CODE = 'ru-RU'

also, I have installed and working django-admin-tools. But admin language still english. What I'm doing wrong?

PS.

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

回答1:


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'
    



回答2:


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.



来源:https://stackoverflow.com/questions/11177330/change-locale-for-django-admin-tools

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