Linux 软件中文信息的汉化包含如下几个步骤.
查看您的Linux平台是否支持中文Locale/X Locale, 如果不支持 可以从网上下载.
在软件中设置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目录下