来自 Django 文档:
如果您定义自定义
LANGUAGES设置,可以将语言标记为翻译字符串(如上面显示的默认值) - 但使用“虚拟”gettext()函数,而不是django.utils.translation. 您永远不应该django.utils.translation从您的设置文件中导入,因为该模块本身取决于设置,这会导致循环导入。解决方案是使用“虚拟”gettext()功能。这是一个示例设置文件:
gettext = lambda s: s LANGUAGES = (('de', gettext('German')),('en', gettext('English')),)通过这种安排,
django-admin.py makemessages仍然会找到并标记这些字符串以进行翻译,但翻译不会在运行时发生——所以你必须记住 在运行时gettext()使用的任何代码中将语言包装成真实的LANGUAGES。
将语言包装成 real 到底意味着什么gettext()?它应该如何在代码中调用?