为什么这个Django代码在'has favicon'前面使用_
has_favicon = models.BooleanField(_('has favicon'))
如果你查看import语句,你会发现它们将_绑定到一个函数,该函数将东西转换为unicode并通过编写本地化:
from django.utils.translation import ugettext_lazy as _
Django中的_
是一种用于本地化文本的约定。它是ugettext_lazy的别名。阅读文档中的Lazy translation以获取更多信息。
_
通常是来自gettext的宏/函数,它意味着参数是一个本地化的字符串。这不仅限于Django或Python。事实上,gettext最初是C程序的一个包,多年来移植到许多其他语言。