C ++ gettext无法翻译(Windows 8.1)

时间:2015-04-17 08:19:32

标签: c++ windows gettext

我尝试了几乎所有在web / stackoverflow上找到的解决方案。

这是我缩短的代码:

#include "gettext.h"

std::string locale(setlocale(LC_ALL, ""));
MessageBoxA(NULL, locale.c_str(), "Locale", MB_OK); // prints out 'German_Germany.1252'
std::string lclocale = "LC_ALL=" + locale";

if(0 == putenv(lclocale.c_str()))
    MessageboxA(NULL, "Set locale seccussful", "Locale", MB_OK);
else
    MessageboxA(NULL, "Set locale error", "Locale", MB_OK);

std::string domain("xyz_locale");
textdomain(domain.c_str());
bindtextdomain(domain.c_str(), "./xyz_locale");
bind_textdomain_codeset(domain.c_str(), "UTF-8"); // same problem without this line

我已经尝试过:

  • 手动设置区域设置(LC_ALL)
    • 德国
    • de_DE这个
    • German_Germany.1252

这是我的语言环境目录结构:

pathToDomain
    /(locale) //tried all names mentioned above
        /LC_MESSAGES
            /(domain).mo

我已经尝试设置绝对路径(" C:/....../(域名)")

翻译(-files)是用PoEdit制作的。 * .po文件使用UTF-8编码,行结尾设置为窗口(在PoEdit中设置)。

我已经从这里下载了gettext内容:

但结果与他们没有区别。

我将gettext.hgettext-tools-dev_0.18.1.1-2.win32/share/gettext复制到我项目的/include目录。

编辑:

我已经通读了gettext windows FAQ

0 个答案:

没有答案