仓酷云

标题: PHP教程之PHP国际化成绩 [打印本页]

作者: 深爱那片海    时间: 2015-2-3 23:32
标题: PHP教程之PHP国际化成绩
我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,皮皮我的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。   PHP的gettext用法  
gettext法式在Linux/Unix世界中很罕见,但常人平常利用的时机不多。它用来为使用法式添加国际化撑持。举个例子,假如一个法式中的字符串资本没有硬编码在法式源文件中,而是以一种言语包的文件存在的,那末就能够经由过程添加言语包文件来改动法式界面的言语。gettext就能够做这类事。
Windows下的PHP5中已带有了gettext扩大,Zend Server也以带有该扩大。在php.ini文件中将“extension=php_gettext.dll”后面的分号去失落,重启Apache,假如一切正常的话,在phpinfo()的输入中应当会有gettext一节。上面有一个复杂的“Hello World”的例子来看看若何用gettext来到达撑持多言语的目标。
创立一个PHP文件test.php,内容以下:
<?php
putenv(“LANG=zh_CN”);
setlocale(LC_ALL, ‘zh_CN’);
bindtextdomain(‘testz, ‘./locale’);
textdomain(‘test’);
echo gettext(‘Hello World!’);
?>
开首两行代码设置言语情况为’zh_CN’,也就是简体中文。bindtextdomain设置域test的目次为以后目次下的locale目次。textdomain(’text’)告知PHP注释器,gettext函数要去test域中去寻觅替换字符串。
在阅读器中翻开这个文件,可以看到了局为“Hello World”,只是原样输入罢了,由于还没有制造中文言语包。要让阅读器输入中文而不改动源法式,需求筹办两个文件,PO和MO文件。为了失掉这两个文件,需求利用xgettext和msgfmt两个法式。Windows用户可以去GnuWin32下载GetText软件包,外面就有这两个法式。
接着创立响应的目次布局。在test.php的目次下创立“locale\zh_CN\LC_MESSAGES”如许的目次。目次名zh_CN必定要和代码中的言语称号zh_CN不异。然后在号令提醒符下履行:
xgettext -d test test.php
“-d test”暗示domain为“test”,这会在以后目次下生成test.po这个文件。用文本编纂器翻开它,做以下修正:

“Content-Type: text/plain; charset=GB2312\n”
“Content-Transfer-Encoding: 8bit\n”
#: test.php:11
msgid “Hello World!”
msgstr “你好,世界!”
行将charset设置为中文编码“GB2312”,将响应的msgid中的英文字符串翻译成中文填入到上面的msgstr中。接上去用msgfmt生成MO文件。MO是一个二进制格局的文件,gettext从它外面提取字符串资本。在号令提醒符中履行以下号令可以从方才修正的PO文件失掉MO文件:
msgfmt -o test.mo test.po
最初将test.po和test.mo放在locale\zh_CN\LC_MESSAGES目次下,刷新阅读器,便可看到显示的是中文。
下载 GnuWin32 编译po mo东西,放入情况变量,cmd 下进入项目根目次,
分离履行 :xgettext -d hello hello.php   生成po文件
分离履行 :msgfmt -o hello.mo hello.po   生成mo文件
要想从事软件开发工作,那么,还有很多的知识要学习,其实,不管是以后想去从事哪个工作,都需要自己去利用空闲的时间去不断的学习新的知识,不断的充实自己。
作者: 活着的死人    时间: 2015-2-4 01:54
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 灵魂腐蚀    时间: 2015-2-7 19:03
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 因胸联盟    时间: 2015-3-1 03:33
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 金色的骷髅    时间: 2015-3-10 12:26
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 再见西城    时间: 2015-3-17 06:13
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 愤怒的大鸟    时间: 2015-3-23 23:16
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 透明    时间: 2015-3-27 18:09
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 仓酷云    时间: 2015-4-5 01:07
当然这种网站的会员费就几十块钱。
作者: 蒙在股里    时间: 2015-4-16 11:36
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 若相依    时间: 2015-4-26 12:03
做为1门年轻的语言,php一直很努力。
作者: 若天明    时间: 2015-4-28 02:01
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 第二个灵魂    时间: 2015-5-6 17:11
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 乐观    时间: 2015-6-13 00:28
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 飘飘悠悠    时间: 2015-6-21 20:33
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 分手快乐    时间: 2015-6-28 08:47
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 飘灵儿    时间: 2015-7-6 00:28
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 精灵巫婆    时间: 2015-7-8 02:44
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 深爱那片海    时间: 2015-7-10 15:05
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 谁可相欹    时间: 2015-7-25 00:51
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2