Значение лидирующего подчеркивания в списке кортежей, используемых для определения полей выбора? - PullRequest
49 голосов
/ 03 июня 2010

Я видел несколько примеров, определяющих поля выбора, например:

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

(Источник: http://code.djangoproject.com/ticket/5446 Также см .: http://djangosnippets.org/snippets/494/)

В чем смысл подчеркивания? И почему второе значение в кортеже даже заключено в скобки?

1 Ответ

70 голосов
/ 03 июня 2010

Главное подчеркивание - это часто используемый псевдоним функции для одной из функций ugettext, используемых механикой интернационализации (i18n).

Это означает, что когда у вас запущен i18n, метки поля выбора будут переведены на соответствующий язык конечного пользователя, если перевод доступен.

В верхней части файла с таким синтаксисом вы должны увидеть (или, если нет, вы должны иметь) что-то вроде:

from django.utils.translation import ugettext_lazy as _

См. документы здесь для получения более подробной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...