Что делает перенос строки в 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