Значение лидирующего подчеркивания в списке кортежей, используемых для определения полей выбора?
Я видел несколько примеров, определяющих поля выбора, например так:
COUNTRIES = (
('fr', _('France')),
('de', _('Germany')),
...
)
(Источник: http://code.djangoproject.com/ticket/5446 Также см.: http://djangosnippets.org/snippets/494/)
В чем смысл подчеркивания? И почему второе значение в кортеже даже заключено в скобки?
1 ответ
Главное подчеркивание - это часто используемый псевдоним функции для одной из функций ugettext, используемых механикой интернационализации (i18n).
Это означает, что когда у вас запущен i18n, метки полей выбора будут переведены на соответствующий язык конечного пользователя, если перевод доступен.
В верхней части файла с таким синтаксисом вы должны увидеть (а если нет, то должны иметь) что-то вроде:
from django.utils.translation import ugettext_lazy as _
Смотрите документы здесь для более подробной информации