软件界面把英文翻译成中文的问题!
在FC3上做了一个开源项目,界面是英文的,想把英文界面汉化成中文。在网上找到几篇汉化文章,在软件的main主函数处加了如下几句话:setlocale(LC_ALL, "");
bindtextdomain("this_app", "/usr/share/locale");
textdomain("this_app");
在文件开头加了#define _(String)gettext(String)
并把程序中出现的字符串都改成能利用上述宏定义的格式。
接下来重新编译全部源文件,一切正常。
然后用xgettext -a -o this_app.po this_app.c 提取翻译信息,并在this_app.po文件中将对应的英文字符串用vi编辑器翻译成中文;
然后在用 msgfmt -o this_app.mo this_app.po格式化成.mo文件,并拷贝到cp this_app.mo /usr/share/locale/zh_CN/LC_MESSAGES。
经过上述步骤,我将应用程序界面的一个菜单名翻译作为测试,结果什么也没显示出来,即菜单按钮处为空白,不知道是什么原因?请各位多多指教! 你自己系统的locale有没有设置好? 主席你好,我的系统语言是选择FC3中的系统语言为简体中文,export查看环境变量,是zh_CN 18030,不知道这样设置有什么问题? 不知道你用的 gtk 还是 qt,
菜单定义是再数组中? 那么就该用 N_(...) 然后用 _(...) 来引用。
你可以看一下
http://www.gnome.org/~malcolm/i18n/index.html
Internationalising GNOME applications
另外, po 文件必须是 utf-8 的。
页:
[1]