Какое соглашение об именах для короткого имени 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 файл.