用于定义选择字段的元组列表中前导下划线的含义?

时间:2010-06-03 08:12:55

标签: python django internationalization

我已经看到了一些定义选择字段的例子:

COUNTRIES = (
    ('fr', _('France')),
    ('de', _('Germany')),
    ...
)

(资料来源:http://code.djangoproject.com/ticket/5446 另见:http://djangosnippets.org/snippets/494/

领先下划线的含义是什么?为什么元组中的第二个值甚至是括号?

1 个答案:

答案 0 :(得分:69)

前导下划线是国际化(i18n)机制使用的ugettext函数之一的常用函数别名。

这意味着当您运行i18n时,如果有可用的翻译,则选择域标签将被翻译成适当的最终用户语言。

在具有这种语法的文件的顶部,您应该看到(或者如果没有),例如:

from django.utils.translation import ugettext_lazy as _

有关详细信息,请参阅docs here