易截截图软件、单文件、免安装、纯绿色、仅160KB

用php gettext库来开发多语言系统


通常人们写程序时都是将文字写死在程序里的,比如:echo "Hello
World!";
,假如要改成它国语言,写国际化程序,就要逐个打开进行修改,程序较短时还行,若程序有上万甚至更多,改起来就不是那么容易了。近来随着i18n的逐渐标
准化,我也来讲一讲在PHP中如何实现国际化支持。跟其他程序语言一样,在 PHP 也可以利用 gettext 套件写作 i18n 程序,实现
NLS(Native Language Support) 国际化支持。
实现流程:程序设计者在程序码中写入所要显示的信息,在运行程序时并不会直接显示程序设计师所写的信息,而会先去找一个所设置语系的信息档。如果未找到,才会去显示程式码中的信息。
  一、安装设置gettext套件:
windows系统:
  1、打开php.ini档,查找extension=php_gettext.dll,去掉前面的“;”
  2、保存,然后restart server。
  若一切顺利,就可以在 phpinfo() 中看到 gettext 字样,至此已设置完毕。
二、php_gettext.dll套件里有好几个函式,具体请看相关的manual。在这里我们只用记住3个函式就行了,如下:
string bindtextdomain ( string domain, string directory)
string textdomain ( string text_domain)
string gettext ( string message)
  三、写作i18n程序:
<?php
// 常规的程序
echo
"Hello World!"
);
?>
下面是 i18n 程序:hello.php
<?php
// I18N 程序范例开始
define
(
'PACKAGE'
,
'hello'
);
// 定义要用的mo文件名称,常规来说,我们都把PACKAGE的名称定义和程序名称相同。
putenv
(
'LANG=zh_CN'
);
setlocale
(
LC_ALL
,
'zh_CN'
);
// 指定要用的语系,如:en_US、zh_CN、zh_TW
bindtextdomain
(
PACKAGE
,
'e:/phpbulo.com/language'
);
textdomain
(
PACKAGE
);
// The .mo file searched is:
// e:/phpbulo.com/language/zh_CN/LC_MESSAGES/hello.mo
echo
gettext
(
"Hello World!"
);
?>
  在IE中输入:http://localhost/hello.php,输出结果为:“Hello World!”
  note:按照 GNU package 里面的习惯,可以使用 _(...) 来代替 gettext(...) ,这样就可以少打很多 gettext 了。
  四、接下来设置gettext po档:
  1、创建目录结构,如下所示:
    bindtextdomain's dir
      /language
        /LC_MESSAGES
 


相关文档:

PHP类实例教程(十):类的重写(override)

如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法具有相同的方法名称,在PHP5中不限制输入参数类型、参数数量和返回值类型。(这点和JAVA不同)
子类中的覆盖方法不能使用比父类中被覆 ......

PHP类实例教程(十二):类中parent::关键字

PHP5中使用parent::来引用父类的方法。 parent:: 可用于调用父类中定义的成员方法。parent::的追溯不仅于直接父类。
通过parent::调用父类方法
<!-- 声明一个员工类,经理类继承自员工类 -->
<?php
class employee
{
protected $sal = 3000;
public function getSal() {
$this->sal = $this-> ......

PHP类实例教程(二十四):PHP5类中的多态

多态这个概念,在Java中指的是变量可以指向的对象的类型,可是变量声明类型的子类。对象一旦创建,它的类型是不变的,多态的是变量。在PHP5中,变量的类型是不确定的,一个变量可以指向任何类型的数值、字符串、对象、资源等。我们无法说PHP5中多态的是变量。
我们只能说在PHP5中,多态应用在方法参数的类型提示位置。
一 ......

xen nginx php 记录一下。

最近在弄nginx和xen+php.中间也费了不少的周折.记录一下.也算一个小成果.
操作系统版本,最后还是选择CentOS-5.4-x86_64-bin-DVD.iso.
CentOS-5.4-x86_64-bin-DVD.iso 的安装:
安装的时候基本上lib和开发工具都要选.桌面的开发环境我也都选了.
说不定哪个函数支持就要用到这个库.
mysql-5.1.41.tar.gz:
据说更高版本的 ......

php效率高写法

 
0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号