Dra*_*ail 6 python django internationalization django-admin django-admin-tools
在我的settings.py档案中,我有:
LANGUAGE_CODE = 'ru-RU'
Run Code Online (Sandbox Code Playgroud)
另外,我已经安装并使用了django-admin-tools.但管理语言仍然是英语.我做错了什么?
PS.
$ cat settings.py | grep USE | grep -v USER
USE_I18N = True
USE_L10N = True
USE_TZ = True
Run Code Online (Sandbox Code Playgroud)
您需要专门为管理员应用程序设置语言.由于django不提供语言下拉作为默认登录的一部分,因此您有以下几种选择:
使用超级用户/员工凭据和正确的语言登录到正常(非管理员视图),然后切换到管理URL.
更新管理模板并添加语言下拉列表请参阅此代码段.
创建一些自定义中间件来设置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
Run Code Online (Sandbox Code Playgroud)
把它添加到你的 MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = {
# ...
'foo.bar.AdminLocaleMiddleware',
# ...
}
Run Code Online (Sandbox Code Playgroud)
为管理员设置所需的语言settings.py:
ADMIN_LANGUAGE_CODE = 'ru-RU'
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3560 次 |
| 最近记录: |