gpt4 book ai didi

gettext - 我没有从 xgettext 得到输出

转载 作者:行者123 更新时间:2023-12-04 05:36:20 27 4
gpt4 key购买 nike

我将尝试使用 gnu-gettext 进行半大型软件项目的本地化,所以现在我正在尝试学习基础知识。问题是我陷入了一个非常基本的功能。当我尝试使用 xgettext 从源代码中提取字符串时,我什么也没得到。当dll丢失时它会提示,当参数错误时它会提示,但现在它只是默默地返回而不产生任何pot文件或其他任何东西。

所以,我的问题是:
有没有人意识到这个问题?
有没有办法让 xgettext 更详细地说明它在做什么?

我曾尝试将 xgettext 放在源文件中并将源文件放在 gettext\bin 目录中,但无济于事。

我应该提到我在 Win7 机器上工作,我使用 gettext-tools-dev_0.18.1.1-2_win32。我已经安装了 MinGW。

我的测试代码锁定是这样的:

#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);
}

如果有人可以帮助我解决这个问题,我将不胜感激。
/罗伯特

最佳答案

好的,我解决了。我以某种方式认为 xgettext 会理解重新定义:

#define _(String) gettext(String)

嗯,显然它没有,当我仔细阅读手册时,它也这么说。

所以当我添加 -k_ 到 xgettext 选项,它都有效。

/罗伯特

关于gettext - 我没有从 xgettext 得到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com