Что делает перенос строки в N_() в Python-Fu?

<TL;DR>Он используется для интернационализации в GTK+, GIMP GUI Toolkit. Ссылка на документацию: N_() </TL;DR>


Я работаю над Python-Fu и часто вижу строки, окруженные N_(), как в: N_("Some random string"),

Еще в другом плагине N_() не будет там и "Some random string" работает просто отлично.

Так что же дает? Я искал вокруг, но на самом деле ничего не нашел по этому поводу. Небольшая помощь от эксперта по питону будет принята с благодарностью, так как я довольно новичок в этом. Спасибо!

<< Редактировать >>

Это вызов функции регистрации подключаемого модуля Python для GIMP 2.8. Он требуется в каждом плагине и регистрирует плагин в графическом интерфейсе, который отображается в системе меню, в которой вы определяете 12-й аргумент.

Это не следует путать с более ранней версией порядка параметров GIMP или Script-Fu, которая основана на Scheme и поэтому, к сожалению, безобразна как грех.

register(
    "omnicyde_btn_metal_ring",
    N_("Badass Glossy Metal Ring Button"),
    "This is going to be so incredibly sweet",
    "Omnicyde",
    "Omnicyde",
    "2014",
    "_BtnMetalRing",
    "",
    [],
    [],
    btn_metal_ring,
    menu="<Toolbox>/Omnicyde/Buttons",
    domain=("gimp20-python", gimp.locale_directory)
)

Так, в некоторых плагинах будет N_(), обертывающий строку, а в некоторых нет такой же строки в списке аргументов. Обе версии работают..

Я подумал, что это была конструкция ядра Python или что-то вроде этого, так как я немного новичок в этом. Опять же, я новичок в Python-Fu. В равной степени возможно, что это какая-то вещь GIMP, или даже Python-Fu..

1 ответ

Решение

Это как намекает в комментариях. N_ макрос i10n, определенный в gi18n.h, gi18n использует библиотеку gettext.

http://opensource.apple.com/source/ChatServer/ChatServer-37.1/libraries/glib-2.4.5/glib/gi18n.h

Что касается gettext_noop, вы можете увидеть его использование на http://www.gnu.org/software/gettext/manual/html_node/Special-cases.html

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