Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403008
  • 博文数量: 59
  • 博客积分: 5195
  • 博客等级: 大校
  • 技术积分: 645
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-01 14:38
文章分类

全部博文(59)

文章存档

2017年(1)

2011年(10)

2010年(1)

2009年(9)

2008年(1)

2007年(35)

2006年(2)

我的朋友

分类: LINUX

2009-05-26 14:20:12

1、生成一个.h文件,加入以下内容,在需要的地方引用此头文件
#include         //gettext支持
#include         //locale支持

#define PACKAGE "name"            //软件包名,即.mo的文件名
#define LOCALEDIR "/usr/share/locale"     //locale所在目录,name.mo生成后会存入"/usr/share/locale/zh_CN/LC_MESSAGES"目录下
#define _(string)    gettext(string)    
#define N_(string)    string

2、在main函数的头部加入以下内容
bindtextdomain (PACKAGE, LOCALEDIR);
bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain (PACKAGE);

3、在显示文字的地方套用_("string"),如:
gtk_window_set_title(GTK_WINDOW(window),_("title name"));

4、生成.po文件
1)
xgettext -k_ -o name.po *.c --from-code=utf-8

2)name.po文件中字符类型为UTF-8:
Content-Type: text/plain; charset=UTF-8

3)
msgid "title name"
msgstr "标题名字"    [注:此处是自己手工添加]
...

5、生成.mo文件
msgfmt -o name.mo name.po
[注:msgfmt还可以生成.gmo文件
 例如看图软件gqview的汉化只支持gb2312,如果想支持utf8就要先把
zh_CN.GB2312.po转化成utf8格式的zh_CN.po文件,再通过"msgfmt --statistics zh_CN.po -o zh_CN.gmo"生成一个zh_CN.gmo文件,进入configure文件,在ALL_LINGUAS后加入zh_CN,重新编译就能支持utf8
]

6、如果"/usr/share/locale/zh_CN/LC_MESSAGES"下没有name.mo则手动拷贝过去

7、更改字符编码
1、英文
LC_CTYPE="en_GB"
LC_ALL="en_GB.utf8"
LANG="en_GB"
export LC_CTYPE LC_ALL LANG

程序标题会显示"title name"

2、中文
LC_CTYPE="zh_CN"
LC_ALL="zh_CN.utf"
LANG="zh_CN"
export LC_CTYPE LC_ALL LANG

程序标题会显示"标题名字"
阅读(1238) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~