xgettextツールがCソースファイルを解析して翻訳するための文字列を収集する方法についていくつかの誤解があります。xgettextはマクロとして定義された文字列を認識しません
私はxgettextツールのバージョン0.10.35と を使用しましたが、解析中にマクロのように定義された文字列を認識しないことが判明しました。例えば
我々は次の内容でtest_xgettext.cファイルがあります:私たちは
を実行する場合xgettext.exe test_xgettext.c -o test_xgettext.pot -k_
#include <stdio.h>
#define _(str) str
#define STRING_1 _("string 1")
int main(void)
{
printf(STRING_1);
printf(_("string 2"));
return 0;
}
を
次の内容のtest_xgettext.potファイルがあります:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <[email protected]>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2016-09-01 12:39+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <[email protected]>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: test_xgettext.c:10
msgid "string 2"
msgstr ""
ここではPOTファイルに「文字列2」しかありません。私の目標は「文字列1」と「文字列2」の両方を収集する です。
ありがとうございました。
作品。 (xgettext 0.19.2 on linux) – michalsrb
@michalsrb私はWindows 7 Professionalで私のバージョンを使用しています。現在使用されているxgettextのバージョンを変更できるかどうかは不明です。 – yurko
言語を正しく認識していない可能性があります。 "-L C"パラメータを追加してみてください。たとえば、Pythonモードでは「文字列1」はスキップされます。 – michalsrb