Какое соглашение об именах для короткого имени ngettext?

gettext.gettext импортируется как _:

from gettext import gettext as _

Это какое-то соглашение об именах, верно? Что эквивалентно для gettext.ngettext? __?

1
задан 5 July 2012 в 16:45

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 вам нужно определить ярлыки самостоятельно, но было бы глупо придерживаться того же соглашения об именах, для согласованности. [ 1115]

Тем не менее, я помню, что intltool не распознает ярлык P_ по умолчанию, поэтому, поскольку ngettext используется не так часто, как gettext, вы можете просто использовать фактическое имя функции, а не ярлык. [ 1116]

Если вы все еще хотите использовать ярлык, и он не поддерживается intltool, вам нужно указать intltool, чтобы использовать его, IIRC через переменную XGETTEXT или через файл Makevars. [ 1117]

0
ответ дан 5 July 2012 в 16:45

Другие вопросы по тегам:

Похожие вопросы: