Linux 版 (精华区)
发信人: don (驿路梨花), 信区: Linux
标 题: Linux 信息的汉化
发信站: 紫 丁 香 (Tue May 9 10:25:09 2000), 转信
发信人: null (钠尔), 信区: LINUX
标 题: Linux 信息的汉化
发信站: 碧海青天 (Sun Apr 30 13:07:35 2000), 转信
Linux 信息的汉化
作者:于明俭
Linux 软件中文信息的汉化包含如下几个步骤.
准备:
查看您的Linux平台是否支持中文Locale/X Locale, 如果不支持 可以从网上下载
.
设置locale:
在软件中设置Locale, 必须先包含头文件并定义字符串翻译的宏:
#include <locale.h>
#include <libintl.h>
#define _(String) gettext(String)
#define N_(String) gettext(String)
#define __(String) (String)
初始化locale,
setlocale(LC_ALL, ""); 或
setlocale(LC_ALL, "zh_CN.EUC"); 或
setlocale(LC_ALL, "zh_TW.Big5");
其中第一种这样软件将根据环境变量, LC_ALL, 或 其中特殊选项LC_CTYPE, LC_N
UMERIC, LC_TIME,
LC_COLLATE, LC_MONETARY, LC_MESSAGES初始化. 其它两种是直接设置GB/GBK 或
Big5的locale.
为了软件设计灵活性, 最好使用第一种方式.
指定信息位置:
在软件中指定所提取信息的目录和文件
#define PACKAGE "test" //this package name
#define LOCALEDIR "/usr/share/locale"
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
指定翻译信息:
在>
Transfer interrupted!
printf("%s", _("Chinese"));
这里字符串"Chinese"被指定从locale信息文件中提取.
信息提取:
假设程序test.c已编写完毕, 可以用命令
xgettext -a -o test.po test.c
把信息提取出来.
信息翻译:
信息文件 test.po 中含有要翻译的信息:
msgid "Chinese"
msgstr ""
可以把它翻译成中文. 如果同时支持GB/Big5, 还要翻译成 两个文件.
msgid "Chinese"
msgstr "中文"
信息格式化:
把上述文件 test.po 格式化成可用于提取的文件 test.mo:
msgfmt -o test.mo test.po
信息安装:
把上述文件 test.mo 拷贝到所定义的locale目录下
--
--
一条驿路,一种氛围。
一朵梨花,一种思考。
希望能在Linux这条驿路上与你同行!
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.239.63]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.117毫秒