imapanda 发表于 2005-10-7 18:29:25

软件界面把英文翻译成中文的问题!

在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。

经过上述步骤,我将应用程序界面的一个菜单名翻译作为测试,结果什么也没显示出来,即菜单按钮处为空白,不知道是什么原因?请各位多多指教!

吴文官 发表于 2005-10-7 19:04:14

你自己系统的locale有没有设置好?

imapanda 发表于 2005-10-7 20:34:02

主席你好,我的系统语言是选择FC3中的系统语言为简体中文,export查看环境变量,是zh_CN 18030,不知道这样设置有什么问题?

ggad 发表于 2005-10-10 11:18:28

不知道你用的 gtk 还是 qt,

菜单定义是再数组中? 那么就该用 N_(...) 然后用 _(...) 来引用。

你可以看一下

http://www.gnome.org/~malcolm/i18n/index.html
Internationalising GNOME applications

另外, po 文件必须是 utf-8 的。
页: [1]
查看完整版本: 软件界面把英文翻译成中文的问题!