php 怎么.po做国际化,php gettext方式实现UTF 8国际化多语言(i18n)

来随着i18n(国际化)的逐渐标准化,我也来讲一讲在PHP中如何实现国际化支持。跟其他程序语言一样,在 PHP 也可以利用 gettext

套件写作 i18n 程序,实现 NLS(Native Language Support) 国际化支持,具体请参考官方文档(

http://www.gnu.org/software/gettext/manual/gettext.html

)

这里我们主要介绍window平台下使用php的扩展gettext实现程序的国际化。

gettext简介:

GNU

gettext是翻译项目的重要一步,它提供了一个工作框架,由一些集成的工具和文档组成,帮助程序员、翻译人员和最终用户实现程序的国际化和本地化。用

Gettext的方式实现多语言得到了广泛的支持,著名的BLOG程序wordpress的国际化就是用的GNU gettext。

大致原理:

GNU

gettext使用PO或MO文件来实现国际化和本地化。PO的意思是Portable

Object,是一种文本结构,可以方便的由人们阅读和修改。MO是Machine

Object的简写,MO文件是PO文件的二进制形态。一般来说,一个PO或MO文件对应于一种语言,如果一个程序要支持多种语言,每一种语言都需要自己

的PO或MO文件。

开始应用:

步骤一:搭建环境(服务器已经完成,环境已经搭建好了)

1。首先查看你的php扩展目录下是否有php_gettext.dll这个文件,如果没有,这就需要你下载一个或是从其他地方拷贝一个,然后放到php扩展目录。

2。打开php.ini,查找”;extension=php_gettext.dll“ ,然后去除注释,重启apache。

若一切顺利,就可以在 phpinfo() 中看到 gettext 字样,至此服务器环境配置完毕。

步骤二:假如我们要翻译test.php页面里的hello word!这句话。

编辑test.php,将要翻译 的文字用gettext函数包含,表示这些被包含的文字是需要用来翻译的。

view plain

copy to clipboard

print

?

include_once

(

'inc/setLan.php'

);

$domain

=

'test'

;

bindtextdomain

(

$domain

,

"locale/"

);

//设置某个域的mo文件路径

bind_textdomain_codeset($domain

,

'UTF-8'

);

//设置mo文件的编码为UTF-8

textdomain($domain

);

//设置gettext()函数从哪个域去找mo文件

?>

&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值