【发布时间】:2016-05-16 14:26:51
【问题描述】:
我是 following an official i8n example 用于使用 gettext 的本地目录存储库:
#include <libintl.h>
#include <iostream>
#define _(str) gettext(str)
int
main()
{
setlocale (LC_ALL, "pt_PT");
bindtextdomain ("messages", "/home/pasousa/temp/i18n_test/lang/");
textdomain ("messages");
std::cout << _("Hello world!") << std::endl;
return 0;
}
葡萄牙语翻译字符串包含在./lang/pt_PT/LC_MESSAGES/messages.mo 中。但是,如果我使用所有这些代码,我将无法翻译 Hello World 消息。
【问题讨论】:
-
欢迎来到 StackOverflow!请务必包含所有信息,这意味着您的
messages.mo文件 的内容(为了示例,应将其缩减为“Hello World!”)。此外,如果您检查调用的返回结果可能会有所帮助......我注意到bindtextdomain可能会返回指向char*的指针以用于目录或NULL——例如,并设置@ 987654328@如果有问题。