Windows 上的 glib i18n
我正在尝试使用 Eclipse CDT + MinGW 和 GTK 2.22 在 Windows 7 上运行 C++ GTK2 应用程序。它使用
进行国际化,并且在 Linux 上完美运行。但是,我无法让它在 Windows 上运行。我使用以下代码初始化本地化:
setlocale(LC_ALL, "sk_SK");
bindtextdomain ("MyApp", "MyPath");
bind_textdomain_codeset ("MyApp", "UTF-8");
textdomain ("MyApp");
这些函数都没有返回 NULL,因此它们成功完成。
然后,当我尝试使用:获取字符串时
gettext("someText");
,我只得到“someText”,这意味着找不到我的翻译文件。
我的 GNU-gettext 创建的语言文件是 MyPath/sk_SK/LC_MESSAGES/MyApp.mo。 我可以完成这项工作的唯一方法是将 Windows 中的 LC_ALL
环境变量手动设置为 sk_SK
(但是 putenv("LC_ALL=sk_SK")
在我的代码中也不起作用)。
I am trying to run C++ GTK2 application on Windows 7, using Eclipse CDT + MinGW and GTK 2.22. It uses <glib/gi18n.h>
for internationalization and it works perfectly on Linux. However, I can't make it work on Windows. I initialize localization using this code:
setlocale(LC_ALL, "sk_SK");
bindtextdomain ("MyApp", "MyPath");
bind_textdomain_codeset ("MyApp", "UTF-8");
textdomain ("MyApp");
None of these functions returns NULL
, so they finish successfully.
Then when I try to obtain a string using:
gettext("someText");
, I get only "someText", which means that my translations file was not found.
My GNU-gettext created language file is MyPath/sk_SK/LC_MESSAGES/MyApp.mo.
The only way I can make this work is to set the LC_ALL
environment variable in Windows manually to sk_SK
(but putenv("LC_ALL=sk_SK")
in my code does not work either).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论