• php程序的国际化(转载)


    简介:这是php程序的国际化(转载)的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=344024' scrolling='no'>

    php程序的国际化

    这里我们主要介绍window平台下使用php的扩展gettext实现程序的国际化。

    步骤一:搭建环境
    1,首先查看你的php扩展目录下是否有php_gettext.dll这个文件,如果没有,这就需要你
    下载一个或是从其他地方拷贝一个,然后放到php扩展目录。
    2,打开php.ini,查找”;extension=php_gettext.dll“ ,然后去除注释,重启apache

    步骤二:原理讲解
    假如你的没有国际化的程序里有这样的代码,echo "你好";,而国际化的程序你要写成
    echo gettext("你好");,然后再在配置文件里添加“你好”相对应的英文“Hi”。
    这时,中国地区浏览都会在屏幕上输出“你好”,而美国地区浏览都会在屏幕上输出
    “Hi”。也就是说,最终显示什么是根据你的配置文件而定的,如果找不到配置文件,
    才会输出程序里面的内容。

    步骤三:编码测试
    1,我们在d:\www下面新建文件hi.php,详细代码如下
    1 <?php

    3 $domain = 'test';
    4 bindtextdomain($domain, "locale/");//设置某个域的mo文件路径
    5 textdomain($domain);//设置gettext()函数从哪个域去找mo文件
    6 echo gettext("Hi!");//_()是gettext()函数的简写形式

    8 ?> 
    这时你运行改程序,只会输出“Hi”。但我们是中国人,我们不认识“Hi”,
    我们只认识“你好”,这时就要配置文件出马。配置文件的生成一般借助一款工具。
    下载地址:http://nchc.dl.sourceforge.net/sourceforge/gnuwin32/gettext-0.14.4.exe
    安装好以后,为了在任意目录里使用,需要把“安装路径/bin”添加到系统环境变量里。

    步骤四:配置文件的生成
    1,我们假设你的工具已经安装好,并且可以在任意目录使用。现在就要运行cmd,并把
    路径切换到d:\www下面,也就是hi.php所在目录。
    键入xgettext -d hi hi.php --from-code=gb2312,然后执行,这时你可以看到新生成一个
    hi.po文件,注意:--from-code=gb2312,其中gb2312还可以是utf-8。
    2,打开hi.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: 2009-01-19 17:47+0800\n"

    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"

    "Language-Team: LANGUAGE <LL@li.org>\n"

    "MIME-Version: 1.0\n"

    "Content-Type: text/plain; charset=CHARSET\n"

    "Content-Transfer-Encoding: 8bit\n"



    #: hi.php:6

    msgid "Hi!"

    msgstr ""

    现在有两个地方需要修改,
      1:"Content-Type: text/plain; charset=CHARSET\n"
      2:msgstr ""
    把1中的CHARSET修改成gb2312,然后把2修改成msgstr "你好"。
    3,键入msgfmt -o hi.mo hi.po,执行,这时生成hi.mo文件。
    然后在d:\www下新建locale\zh_Cn\LC_MESSAGES目录,把hi.mo拷到这里就行了。
    4,现在重启apache,再次运行,屏幕上可以输出“你好”。

    其他:
    如果使用utft-8编码的话,需要使用
    bind_textdomain_codeset($domain,'UTF-8');
    相应的要把hi.po里的CHARSET改成utf-8,还需要把hi.po保存成utf-8格式,
    再次生成hi.mo就行了。

    总结:
    我们都希望我们写的程序可以被大众甚至国际普遍使用,像大名鼎鼎的wordpress的
    国际化使用的也是他。gettext还是非常不错的,简单易用,

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/344024.html pageNo:5
  • 相关阅读:
    【转】nginx(一) nginx详解
    美好生活需要全方位的保障
    Oracle私网mtu滚动修改实施方案
    小知识:后台执行Oracle创建索引免受会话中断影响
    小知识:Oracle RAC添加服务名实现单节点访问
    Windows平台安装Oracle11.2.0.4客户端报错INS-30131
    小知识:如何赋予用户查看所有存储过程和触发器的权限
    小知识:如何判定crontab任务的执行频度
    小知识:解决EXP-00003的报错
    Oracle删除索引规范
  • 原文地址:https://www.cnblogs.com/ooooo/p/2241948.html
Copyright © 2020-2023  润新知