我已经从 fr_FR.po 创建了本地化的 fr_FR_Locale.mo 文件。
我在终端上使用了 sgettext , msginit 和 msgfmt 命令。
我已将本地更改为法语(fr_FR.utf8)。
但是当我执行我的代码时,我没有得到我期待的东西。这是我的电话:
setlocale(LC_ALL,"");
bindtextdomain("locale",LC_INTL);
bind_textdomain_codeset("locale", "UTF-8");
textdomain("locale");
printf(gettext("Hello world!"));
这里的输出应该是非英语的一些东西, 但我得到的相同英语单词。
答案 0 :(得分:0)
请参阅以下帖子。它可能对你有用。
答案 1 :(得分:0)
也许你的mo文件找不到。我不知道LC_INTL的含义或您安装mo文件的位置。但是,我们假设您将其安装为/usr/local/share/locale/fr/LC_MESSAGES/MyApp.mo
,代码应如下所示:
setlocale(LC_ALL,"");
bindtextdomain("MyApp","/usr/local/share/locale");
bind_textdomain_codeset("MyApp","UTF-8");
textdomain("MyApp");