我们正在为翻译人员编写.po文件编辑器。翻译人员需要查看他们在实时网站上所做的更改。
我们设法重新加载当前进程/线程的.mo文件。但不是每个进程/线程。
是否有可能在没有更大性能问题的情况下实现这一目标?
答案 0 :(得分:3)
我们遇到了同样的问题。用户必须直接在网站上撰写翻译。我找到了django 1.1的中间件,清除了转换缓存并尝试在django 1.4中使用它。 顺序:
以下功能清除缓存
from django.utils import translation
from django.utils.translation import trans_real, get_language
from django.conf import settings
import gettext
if settings.USE_I18N:
try:
# Reset gettext.GNUTranslation cache.
gettext._translations = {}
# Reset Django by-language translation cache.
trans_real._translations = {}
# Delete Django current language translation cache.
trans_real._default = None
# Delete translation cache for the current thread,
# and re-activate the currently selected language (if any)
translation.activate(get_language())
except AttributeError:
pass
答案 1 :(得分:2)
我检查了django-rosetta,我怀疑他们依赖于mod_wsgi AutoReload机制。这就是我的建议。有关详细信息,请阅读Reloading Source Code。