1.实验环境:
2.配置.
3.php编码
写个简单的hello world!
hello.php
4.生成语言文件
用记事本打开生成的hello.po
如下
改好以后运行生成*.mo文件,编译过C的相信对这些不陌生.
5.设置目录结构.
相对于上面的bindtextdomain设置
D:/www/my/LOCALE
LOCALE
+---zh_CN
+-------LC_MESSAGES//这里放你生成的hello.mo hello.po
6.运行
hello.php
哈哈,出来了,是您好.
这主要是目录结构设置正确,比较复杂.有疑问的同学欢迎参加讨论!~`````
CODE:
php开发环境:
xp+apache2+php5;
DOCUMENT_ROOT = D:wwwmy;程序在根目录下运行
poedit-1.3.7 //可以到poedit官网上去下符合你操作系统的程序. ;
2.配置.
CODE:
当然了,首先一点你要支持PHP的gettext扩展,linux下在编译PHP时搞定,win下最新的php5只要把配置文件里的gettext扩展打开就行了.!~
安装poedit,我是按默认安装的,你自己找到命令的目录就行了,或加个环境变量.
3.php编码
写个简单的hello world!
hello.php
CODE:
<?php
//i18n php国际化编程
define('PACKAGE', 'hello'); //定义语言文件名称.就是*.mo,*.po的名字
putenv("LANG=zh_CN");//定义语系,这个可以参照各种国际化文档.我定义的是中文.
setlocale(LC_ALL,"zh_CN");
bindtextdomain(PACKAGE,"D:/www/my/LOCALE");//设置语言文件路径
textdomain(PACKAGE);//这里是设置下语言文件,上面只是定义一个常量,别搞混了哦
echo _("hello world!");//程序主体,我们用英文写
?>
4.生成语言文件
CODE:
//进入poedit的bin目录
C:Program FilespoEditbin>xgettext -d hello D:wwwmyhello.php
用记事本打开生成的hello.po
如下
CODE:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION/n"
"Report-Msgid-Bugs-To: /n"
"POT-Creation-Date: 2007-09-18 13:40+0800/n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE/n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>/n"
"Language-Team: LANGUAGE <[email]LL@li.org[/email]>/n"
"MIME-Version: 1.0/n"
"Content-Type: text/plain; charset=gbk/n" #这里设置你的字符集
"Content-Transfer-Encoding: 8bit/n"
#: D:/www/my/hello.php:8
msgid "hello world!"
msgstr "您好!" #在这里写你的译文 ;
改好以后运行生成*.mo文件,编译过C的相信对这些不陌生.
CODE:
C:Program FilespoEditbin>msgfmt -o hello.mo hello.po
5.设置目录结构.
相对于上面的bindtextdomain设置
D:/www/my/LOCALE
LOCALE
+---zh_CN
+-------LC_MESSAGES//这里放你生成的hello.mo hello.po
6.运行
hello.php
哈哈,出来了,是您好.
这主要是目录结构设置正确,比较复杂.有疑问的同学欢迎参加讨论!~`````