django.utils.translation.get_language()
将返回默认语言环境。有没有办法找出翻译是否被激活(通过translation.activate()
)?
答案 0 :(得分:2)
可怕的hacky,但至少应该在1.1.1中工作:
import django.utils.translation.trans_real as trans
from django.utils.thread_support import currentThread
def isactive():
return currentThread() in trans._active
答案 1 :(得分:0)
取决于应用程序和架构...
Ignacio提供的Hack应该可行,但是你将在非激活的线程中运行什么?
我会使用Ignacio解决方案+添加所有线程可见的队列,monkeypatch trans_real.activate函数和队列中的set属性。
答案 2 :(得分:-2)
始终检查此类问题的源代码,这比发布到Web更快!
Django在场景背后是黑魔法,并使用某种调度程序来模拟禁用的翻译。
您最好的方法是:
import setttings
assert settings.USE_i18N == True