我有一个用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字符串为__(“”)?
也许有更好的方法?还是更好的图书馆? 任何建议将不胜感激。