我正在编写一个主要面向 GNU/Linux 和 Mac OS X 系统的游戏,但我一直在我的大部分代码中保持相当可移植的内容。
我已经将几乎所有特定于操作系统的东西都移植到了 Windows 上。唯一剩下的是i18n。
我的问题是这个
我应该如何将 Win32 的
setlocale()
功能与 gettext 一起使用?
到目前为止,我一直在使用 ISO 638/ISO 3166 代码(例如de_DE.utf8
),但这些代码似乎不适用于 Windows。
我尝试了 setlocale(LC_ALL, "German"),它成功了,但是 gettext 无法正确找到翻译后的字符串,即使在使用 bindtextdomain 之后也是如此。
有什么提示吗?我想坚持使用 GNU gettext 以避免重写大量代码。