在 Django 中懒惰翻译

Lazy translate in Django

在 Django 中进行惰性翻译时遇到问题。在我的 settings.py 中,我使用构造为:

from django.utils.translation import ugettext_lazy as _
TASK_REPEAT_KEYS = (_('never'), _('daily'), _('weekly'), _('monthly'),)
TASK_REPEAT = dict(zip(TASK_REPEAT_KEYS, range(1, len(TASK_REPEAT_KEYS) + 1)))

并得到错误:

django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready.

谁遇到过类似的问题?

发生这种情况是因为 dict() 调用正在尝试评估翻译。这会否定您尝试使用的任何惰性翻译。您可以做的是使用一个函数,该函数内置了一些简单的缓存到 return 该列表,而无需每次都重新评估该字典。