当前位置:Linux教程 - Linux - linux信息的汉化

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