django - Django i18n:如何不翻译管理网站?

标签 django internationalization django-admin admin

我有几种语言的应用程序,但我想使管理站点始终保持英语。
做这个的最好方式是什么?
提前致谢。

最佳答案

考虑使用替代某些URL的语言环境的中间件。这是一个粗糙的例子:

Django 1.9及更早版本:

from django.conf import settings    
from django.utils.translation import activate     
import re

class ForceInEnglish(object):

    def process_request(self, request):   
        if re.match(".*admin/", request.path):          
            activate("en")      
        else:
            activate(settings.LANGUAGE_CODE)


这只是实现的想法。

Django 1.10+:

from django.conf import settings
from django.utils import translation


class ForceInEnglish:

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if request.path.startswith('/admin'):
            request.LANG = 'en'
            translation.activate(request.LANG)
            request.LANGUAGE_CODE = request.LANG

        return self.get_response(request)


如何申请?

保存到“ middleware.py”,并在设置文件中包括MIDDLEWARE_CLASSES(1.9和更早版本)或MIDDLEWARE(1.10+)。

关于django - Django i18n:如何不翻译管理网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2546569/

相关文章:

python - 在托管应用程序中使用 Selenium ?

django - 在 Django 上设置 geoip 时出错

java - Play 框架中日期格式的国际化

python - 如何使用Django管理界面正常显示上传的文件?

django - Django:从内联模型管理员访问父实例

python - 使用 os.kill() 后如何确定子进程何时终止?

django - Mod_wsgi 无法加载 django.core.handlers.wsgi

Django只读字段仅在更改时,而不是在创建时

.net - 对于可插拔组件的本地化,这是一个很好的解决方案吗?

Spring security + i18n = 如何让它一起工作?