php的国际化编程思路(i18n gettext)

1.实验环境:

php开发环境:
xp+apache2+php5;
DOCUMENT_ROOT D:wwwmy;程序在根目录下运行
poedit
-1.3.7 //可以到poedit官网上去下符合你操作系统的程序. ;

2.配置.

当然了,首先一点你要支持PHP的gettext扩展,linux下在编译PHP时搞定,win下最新的php5只要把配置文件里的gettext扩展打开就行了.!~
安装poedit,我是按默认安装的,你自己找到命令的目录就行了,或加个环境变量

3.php编码
写个简单的hello world!
hello.php

<?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.生成语言文件

//进入poedit的bin目录
C:Program FilespoEditbin>xgettext -d hello D:wwwmyhello.php 

用记事本打开生成的hello.po
如下

# 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的相信对这些不陌生.

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
哈哈,出来了,是您好.

这主要是目录结构设置正确,比较复杂.有疑问的同学欢迎参加讨论!~`````
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值