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文件
?>
<html>
<head>
<meta http-equiv="Content-Type"
&
相关文档:
为了深入了解PHP,以及更加便利的使用PHP为我们服务,本章节主要介绍PHP的基本语法。
一、从HTML中分离
PHP 的脚本由文件中一对特殊的标记所引起的内容,当解释器分析一个文件时,所有特殊标记外的普通文件,解释器不对其做任何处理,而特殊标记内文件将作为 PHP 代码被解释器分析执行。该运行机制将允许您在 HTML 中嵌入 ......
每个PHP程序员都知道PHP有强大的正则表达式功能,为了以后的工作方便,我从网上整理了关于正则表达式的资料,方便以后工作时的进行资料查阅。
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
......
php对xml文件中节点的删除\编辑
使用getElementsByTagName()方法删除\编辑XML节点
三个文件:
1.root.xml
2.remove.php —— 删除节点
3.replace.php —— 替换节点
root.xml
<root>
<child1>child1 content</child1>
<child2>child2 content</child2>
& ......
1. 对递归的不良支持
递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是,PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP 4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限 ......
在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子。在本例中,我们要实现能够通过地理位置,物业类型,房屋价格,房屋面积及信息发布日期等多个条件查询到客户所需的资料。
查询文件(search.php)
一、生成查询语句:
以下为引用的内容:
<?
$conn=mysql_connect("localhost", ......