2

<TL;DR> これは、GIMP の GUI ツールキットである GTK+ の国際化に使用されます。ドキュメントへのリンクは次のとおりです: 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 に答える