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