第一步:安装gettext扩展
windows环境下修改php.ini中的

1
;extension=php_gettext.dll

去掉前面的 ; 号,重启Apache。

ubuntu下执行

1
sudo apt-get install php-gettext

其它环境安装可能需要编译PHP,具体方法Google,这里不再作详细叙述。

最后重启Apache,如果能搜索到gettext,表示安装成功。

 

第二步:PHP程序实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
header("Content-type: text/html; charset=utf-8");
// 定义要用的语言文件名称
define('PACKAGE','default');
// 设置环境变量 语言类型
putenv('LANG=zh_CN');
// 设置地点信息
setlocale(LC_ALL,"zh_CN");
// 设置mo文件的路径,这里的路径为 locale/zh_CN/LC_MESSAGES/default.mo
bindtextdomain(PACKAGE, dirname(__file__) .  '/locale');
// 设置mo文件
textdomain(PACKAGE);
//指定字符编码
bind_textdomain_codeset(PACKAGE, 'UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title><?php echo _('title');?></title>
		<meta http-equiv=X-UA-Compatible content=IE=EmulateIE7 />
</head>
<body>
<?php echo _('content');?>
</body>
</html>

第三步:使用Poedit编辑语言文件
下载Poedit: 下载地址
下装并安装后进下面步骤:
1.选择文件->新建消息目录文档,填写一些必要信息,如下图:

2.填写项目信息,选择类目->设置->路径,填写项目的绝对路径,如下图:

再选择 类目->从源更新,项目中所有带关键字函数中的内容就会全部匹配(关键字可自定义),如下图:

更新后就可以通过Poedit编辑语言文件,如下图:

P.S.之后程序中有新增或删除的短语,只需要通过从源更新重新获取,相当方便。

P.S.2.我测试中出现修改语言文件后页面未更新的现象,只需要重启Apache即可.(一开始以为是编译的mo文件有问题,折腾半天,浪费了一个多小时时间-_!!)

来源: PHP使用gettext扩展实现国际化(l18n)与本地化(l10n) | 火星时代IT开发

- EOF -