gettext.gettext импортируется как _
:
from gettext import gettext as _
Это какое-то соглашение об именах, верно? Что эквивалентно для gettext.ngettext? __
?
Я видел P_
(я предполагаю, что буква P обозначает множественное число), которое иногда используется, но кажется, что нет общего соглашения или определенного стандарта для ярлыка для множественных строк для переводов в gettext.
Как правило, эти ярлыки или макросы используются в C и исходят из GLib, поэтому они не являются стандартными ярлыками из Gettext, но они стали стандартом де-факто для программ, использующих GLib. Они обычно определяются в файле /usr/include/glib-2.0/glib/gi18n.h
и подробно объясняются в документах Интернационализация API для GLib .
Существуют определения для _
(gettext), Q_
(контекст), C_
(контекст), N_
(отметка только для перевода) и NC_
(отметка только для перевода, с контекстом), но нет P_
В любом случае, в Python вам нужно определить ярлыки самостоятельно, но было бы глупо придерживаться того же соглашения об именах, для согласованности. [ 1115]
Тем не менее, я помню, что intltool не распознает ярлык P_
по умолчанию, поэтому, поскольку ngettext используется не так часто, как gettext, вы можете просто использовать фактическое имя функции, а не ярлык. [ 1116]
Если вы все еще хотите использовать ярлык, и он не поддерживается intltool, вам нужно указать intltool, чтобы использовать его, IIRC через переменную XGETTEXT
или через файл Makevars
. [ 1117]