2

<TL;DR> 它用于 GTK+(GIMP 的 GUI 工具包)中的国际化。文档的链接是:N_() </TL;DR>


我正在研究 Python-Fu,经常看到用 包围的字符串N_(),如:N_("Some random string").

然而在另一个插件中,它N_()不会在那里并且"Some random string"工作得很好。

那么给了什么?我已经四处寻找,但并没有真正找到任何东西。非常感谢python专家的一点帮助,因为我对它还很陌生。谢谢!

<< 编辑 >>

这是 GIMP 2.8 的 python 插件注册函数调用。每个插件都需要它,它会向 GUI 注册插件,显示在您在第 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..

4

1 回答 1

4

正如评论中所暗示的那样。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看到它的用途

于 2014-03-04T00:28:07.983 回答