xgettext 도구가 C 소스 파일 을 구문 분석하고 추가 변환을 위해 문자열을 수집하는 방법에 대한 오해가 있습니다.xgettext가 매크로로 정의 된 문자열을 인식하지 못합니다.
xgettext 도구 버전 0.10.35와 을 사용하여 구문 분석하는 동안 매크로처럼 정의 된 문자열을 인식하지 못하는 것으로 나타났습니다. 예를 들어
우리는 다음 내용 test_xgettext.c 파일이 있습니다
#include <stdio.h>
#define _(str) str
#define STRING_1 _("string 1")
int main(void)
{
printf(STRING_1);
printf(_("string 2"));
return 0;
}
우리가 실행하는 경우를
xgettext.exe test_xgettext.c -o test_xgettext.pot -k_
다음 콘텐츠가 포함 된 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 파일에는 "string 2"만 있고, 목표는 이고 "string 1"과 "string 2"를 모두 수집합니다.
도움을 위해 미리 감사드립니다.
작품. (xgettext 0.19.2 on linux) – michalsrb
@michalsrb 필자는 Windows 7 Professional에서 내 버전을 사용합니다. xgettext의 현재 사용되는 버전을 변경할 수 있는지 확실하지 않습니다. – yurko
아마도 언어를 올바르게 인식하지 못합니다. "-L C"매개 변수를 추가하십시오. 예를 들어 python 모드에서 "문자열 1"은 건너 뜁니다. – michalsrb