gettext制作多语言程序之如何确定mo文件的目录名(简体繁体中文、英文、西班牙语言、俄语)

    通过gettext库和poedit制作C、C++程序的国际化多语言版本的时候,需要确定Lang目录,然后编辑po文件生成mo文件,以便gettext库可以根据系统语言加载不同的mo文件,达到在界面上自动显示不同语言的便利。比如目录:C:\TestProject\Lang\en_US\LC_MESSAGES\text.mo。

    很明显,如果需要支持多个国家的语言,在Lang目录下就需要增加多个国家的语言目录。如en_US就是美国的英语,问题是这个目录名是怎么来的呢?答案是通过gettext定义好的规则,前面是语言的代码,比如en表示English,中间加一个下划线,接着是国家或者地区的代码,我们说都是英文,但是也有美国的,也有英国的,这些就需要通过国家的代码来区分不同地区的语言,这里US就是表示United States。再比如都是中文,有简体中文,也有繁体中文之分,也是通过地区的代码来识别区分的。

     按照如上的规则,增加不同国家的语言的时候,就可以通过 语言代码 + 下划线 + 地区代码 来确定需要支持的语言的Lang目录。接着在程序中调用gettext函数,即可动态的根据系统的语言自动的显示不同语言的界面。具体的规则可以参考<<http://www.gnu.org/software/gettext/manual/gettext.pdf>>,该文档中,Language Codes目录下就定义了不同的语言,Country Codes定义了不同的区域编码。结合自己的项目情况,支持各个国家的语言不在话下。

     还是列举一些常用的吧, en_US 目录下存放 美国英文,zh_CN表示简体中文,zh_TW 表示繁体中文,es_ES表示西班牙语言,ru_RU表示俄国俄语。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值