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毫秒