linux信息的汉化
作者:于明俭
Linux 软件中文信息的汉化包含如下几个步骤.
准备:
查看您的Linux平台是否支持中文Locale/X Locale, 如果不支持 可以从网上下载.
设置locale:
在软件中设置Locale, 必须先包含头文件并定义字符串翻译的宏:
#include #include #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_NUMERIC, 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);
指定翻译信息:
在软件中指定要翻译的字符串, 比如,
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目录下
发布人:Crystal 来自:it365