更改 django-admin-tools 的语言环境
Posted
技术标签:
【中文标题】更改 django-admin-tools 的语言环境【英文标题】:Change locale for django-admin-tools 【发布时间】:2012-06-25 23:59:51 【问题描述】:在我的settings.py
文件中,我有:
LANGUAGE_CODE = 'ru-RU'
另外,我已经安装并使用了 django-admin-tools。但管理语言仍然是英语。我做错了什么?
PS。
$ cat settings.py | grep USE | grep -v USER
USE_I18N = True
USE_L10N = True
USE_TZ = True
【问题讨论】:
【参考方案1】:检查您的settings.py
中是否启用了翻译和本地化:
USE_I18N = True
USE_L10N = True
还要检查您是否有俄语的翻译文件(.mo
、.po
)。
【讨论】:
是的,我有这些台词。 .mo 和 .po 文件存在于站点包中。【参考方案2】:您需要专门为管理应用设置语言。由于 django 不提供语言下拉菜单作为默认登录的一部分,因此您有几个选择:
使用超级用户/员工凭据和正确的语言登录到您的正常(非管理员视图),然后切换到管理员 URL。
更新管理模板并添加语言下拉列表see this snippet。
创建一些自定义中间件来设置管理员的语言:
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
将其添加到您的MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES =
# ...
'foo.bar.AdminLocaleMiddleware',
# ...
在settings.py
中为管理员设置您想要的语言:
ADMIN_LANGUAGE_CODE = 'ru-RU'
【讨论】:
谢谢,看来这是我需要的! 您好,感谢您的回答。我正在尝试您的 [3],但无法包含中间件,您将文件放在哪里?以上是关于更改 django-admin-tools 的语言环境的主要内容,如果未能解决你的问题,请参考以下文章
python django-admin-tools的仪表板图
如何在 django-admin-tools 仪表板上添加自定义菜单项