在Windows上内部化UTF-16应用程序(使用gettext或替代方案)

时间:2015-04-21 05:35:26

标签: c++ winapi internationalization gettext utf-16

我有一个用C ++编写的应用程序,它使用WTL进行GUI(类似于MFC的库,通常是一个winapi包装器),CString类和Win32“Wide API”。 我想用不同的语言翻译它。我的程序往往是跨平台的,所以我决定使用可用的开源解决方案,而不是重新发明轮子。 但gettext库缺乏对宽字符串的支持:

char* gettext (const char *__msgid);
char* dgettext (const char *__domainname, const char *__msgid);
char* ngettext (const char *__msgid1, const char *__msgid2, unsigned long int __n);

有没有办法在没有从utf-8重新编码到utf-16的情况下使用这个库,反之亦然?它可能会影响性能。

gettext似乎也缺乏对位置参数的支持(比如Qt确实有)。

顺便问一下,我可以使用带gettext的自定义宏吗?例如,utf-8字符串为_(“”),utf-16字符串为__(“”)?

也许有更好的方法?还是更好的图书馆? 任何建议将不胜感激。

0 个答案:

没有答案