2012-08-09 8 views
2

세미 빅 소프트웨어 프로젝트의 현지화를 위해 gnu-gettext를 사용하려고합니다. 그래서 지금은 기본을 배우려고합니다. 문제는 내가 꽤 근본적인 기능에 붙어있다. xgettext를 사용하여 소스 코드에서 문자열을 추출하려고하면 아무 것도 얻지 못합니다. dll이 누락되면 불만이 제기되고 매개 변수가 잘못되었을 때 불평하지만 이제는 파일이나 다른 파일을 만들지 않고 자동으로 반환됩니다.xgettext에서 출력이 없습니다.

내 질문은 : 이 문제를 인식하는 사람이 있습니까? xgettext가 수행중인 작업에 대해 더 자세한 정보를 제공 할 수있는 방법이 있습니까?

소스 파일에 xgettext를 넣고 소스 파일을 gettext \ bin 디렉토리에 넣으려고했지만 아무 소용이 없었습니다.

필자는 Win7 머신에서 작업 중이며 gettext-tools-dev_0.18.1.1-2_win32를 사용한다고 언급해야합니다. MinGW를 설치했습니다. 이 같은

내 testcode 잠금 : 사람이 나를 도울 수 있다면

#include <string> 
#include <stdio.h> 
#include <stdlib.h> 
#include "libintl.h" 
#include "locale.h" 
#include "helper.h" 

#define _(String) gettext(String) 
#define N_(String) String 
//#define textdomain(Domain) 
//#define bindtextdomain(Package, Directory) 

int main(void) 
{ 
    printf("setlocale returns %s\n", setlocale(LC_ALL, "")); 

    bindtextdomain("hello", "locale"); 
    textdomain("hello"); 

    int a = 1; 
    int b = 2; 

    /// First string 
    printf(_("Hello, world!\n")); 

    std::string multiline = 
    /* Another string */ 
    _("This is a " \ 
     "multi line string."); 
    // A string that contains another 
    printf(_("A string: %s\n"), multiline.c_str()); 
    printf(N_("An untranslatable string!\n")); 
    int foo = 42; 
    /// Playing with positions; int before string in original... 
    printf(_("int: %1$d, string: %2$s\n"), foo, _("Fubar")); 
    printf(_("%1$s %2$s\n"), Helper::String1().c_str(), Helper::String2().c_str()); 
    exit(0); 
} 

, 내가 감사 할 것입니다. /로버트

답변

3

좋아, 해결했습니다. 분명히하지 않았다 나는 조심스럽게 설명서를 읽을 때 가지 그뿐만 아니라 말 잘

#define _(String) gettext(String) 

: 어떻게 든에서 xgettext가 재정을 이해하는 것이라고 생각했다.

그래서 xgettext 옵션에 -k_을 추가하면 모두 효과가있었습니다.

/로버트

관련 문제