Reputation: 692
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
Upvotes: 6
Views: 5585
Reputation: 174708
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'
Upvotes: 9
Reputation: 31683
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.
Upvotes: 0