说明:这篇文章并不是本人的原作,是本人在网上看到的一篇PDF,然后整理来的,原作者叫李东东(中标普华)
/********************************************************
在linux系统下,以c语言程序为例来实现程序的国际化,即让程序根据Linux系统不同的语言环境
的不同来显示出对应该语言的文字,即先让c程序支持国际化然后再进行本地化翻译。
Linux上实现这个过程需要用到xgettext和msgfmt这两个工具。
Xgettext 是国际化的工具,用来提取程序中的字符串,生成*.po或是*.pot的文件,
msgfmt 是本地化的工具,用来编译翻译后的.po文件为.mo文件,这样系统在启动时
候会扫描系统环境提取对应名字的.mo文件中的字符串替代原来的英文,实现本地化。
下面用一个例子来说明使用过程
第一步、支持国际化的C程序(hello.c)如下:
一个支持本地化的C程序,需要用setlocale()来设定翻译选择的语言环境,一组或多组textdomain()和
bindtextdomain()函数来指定用到的翻译文件和该文件所在路径,其textdomain()函数用来指定翻译文件的名
字,而bindtextdomain()函数用来指定该名称的翻译文件所在路径(如果存在多组翻译文件
*********************************************************/
/********************************************************
在linux系统下,以c语言程序为例来实现程序的国际化,即让程序根据Linux系统不同的语言环境
的不同来显示出对应该语言的文字,即先让c程序支持国际化然后再进行本地化翻译。
Linux上实现这个过程需要用到xgettext和msgfmt这两个工具。
Xgettext 是国际化的工具,用来提取程序中的字符串,生成*.po或是*.pot的文件,
msgfmt 是本地化的工具,用来编译翻译后的.po文件为.mo文件,这样系统在启动时
候会扫描系统环境提取对应名字的.mo文件中的字符串替代原来的英文,实现本地化。
下面用一个例子来说明使用过程
第一步、支持国际化的C程序(hello.c)如下:
一个支持本地化的C程序,需要用setlocale()来设定翻译选择的语言环境,一组或多组textdomain()和
bindtextdomain()函数来指定用到的翻译文件和该文件所在路径,其textdomain()函数用来指定翻译文件的名
字,而bindtextdomain()函数用来指定该名称的翻译文件所在路径(如果存在多组翻译文件
*********************************************************/
/*========= hello.c 源程序 ===&