问题
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:
Login to your normal (non admin view), with superuser/staff credentials and the correct language, then shift over to the admin URL.
Update the admin templates and add a language dropdown see this snippet.
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