Что делает _ в коде Django? - PullRequest
       31

Что делает _ в коде Django?

9 голосов
/ 26 декабря 2009

Почему этот код Django использует _ перед 'has favicon'

has_favicon = models.BooleanField(_('has favicon'))

Ответы [ 3 ]

26 голосов
/ 26 декабря 2009

Если вы посмотрите в операторах импорта, вы обнаружите, что они связали _ с функцией, которая превращает материал в юникод и локализует его, написав:

from django.utils.translation import ugettext_lazy as _
10 голосов
/ 27 декабря 2009

_ в Django - это соглашение, которое используется для локализации текстов. Это псевдоним для ugettext_lazy. Прочитайте Ленивый перевод в документации для получения дополнительной информации об этом.

9 голосов
/ 26 декабря 2009

_ обычно является макросом / функцией из gettext, это означает, что аргумент является локализованной строкой. это не ограничивается Django или Python. фактически, gettext изначально был пакетом для программ на C, портированных на многие другие языки за эти годы.

...