GNU gettext 忽略设置的语言环境
GNU gettext ignores set locale
我正在尝试在 MS Windows 上的 C++ 程序 运行 中使用 GNU gettext。我设法将语言环境设置为例如
char *locale = setlocale(LC_ALL, "French_France.1252");
我检查了返回的字符串,所以我知道它花了。
然后我把环境设置为
textdomain("Test");
bindtextdomain("Test", "C:\develop\test\executablesdebug\Language\");
然后我做一个实验性的翻译,比如
char *test = gettext("Hello world");
翻译后的字符串得到的是瑞典语翻译(操作系统设置),而不是我想要的法语字符串。
据我所知,在 Windows 中,您还必须使用 SetThreadLocale
(you will have to map to the locale ID, take a look at this webpage).
设置线程区域设置
最后,考虑到 Windows 每个线程都有自己的语言环境;使用翻译为所有线程设置它。
我正在尝试在 MS Windows 上的 C++ 程序 运行 中使用 GNU gettext。我设法将语言环境设置为例如
char *locale = setlocale(LC_ALL, "French_France.1252");
我检查了返回的字符串,所以我知道它花了。
然后我把环境设置为
textdomain("Test");
bindtextdomain("Test", "C:\develop\test\executablesdebug\Language\");
然后我做一个实验性的翻译,比如
char *test = gettext("Hello world");
翻译后的字符串得到的是瑞典语翻译(操作系统设置),而不是我想要的法语字符串。
据我所知,在 Windows 中,您还必须使用 SetThreadLocale
(you will have to map to the locale ID, take a look at this webpage).
最后,考虑到 Windows 每个线程都有自己的语言环境;使用翻译为所有线程设置它。