随着国际化进程的加快,越来越多的项目需要添加国际化的支持,如外贸网站,面向国际市场的游戏等等.PHP可以通过许多方式实现国际化[详见:PHP国际化-i18n机制教程],但比较现代的方式是使用gettext实现国际化.

gettext 是GNU国际化与本地化(i18n)函数库。它常被用于编写多语言程序。

著名的wordpress以及phpmyadmin就是使用的gettext,使用gettext的wordpress和phpmyadmin对国际化的支持都非常好.

gettext国际化需要用到两个文件,一个.po (Potable Object),一个 .mo (Machine Object),字面意思已很清楚,一个是便携对象,方便人工阅读/修改,一个是机器对象,供程序使用,下面会具体讲到.

 

1.确保gettext扩展已经开启

gettetx_enabled
gettetx_enabled

 

2.下载PoEdit编辑器,编辑.po文件,并生成.mo文件 [直接下载demo]

i18n_dir
i18n_dir

3.PHP示例代码

  1. Hello

  1. Thank you

4.测试en_US(英语-美国)

gettext_en_US
gettext_en_US

5.测试es_US(西班牙语-美国)

gettext_es_US
gettext_es_US

6.注意