当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

4.5Zend_Translate/Zend_Date:构筑支持多语言的网页

9/17/2020 9:43:31 PM 人评论

4.5Zend_Translate/Zend_Date:构筑支持多语言的网页

4.5 Zend_Translate/Zend_Date:构筑支持多语言的网页

随着国际化的深入,很多的公司在不同的国家开展业务时,需要构筑当地的网站,来宣传他们的产品和服务。通常做法都是单独构筑不同语言的网站。这样不可避免的是,在构筑不语言的网站时,相同的逻辑必须再写一遍。发生修改时,各个不同的网站都要进行修改,显然费时费力。

是否能够将逻辑部分与外观显示部分分开,需要对应不同国家语言时,只用改变外观显示部分呢?PHP中提供了实现上述设想的组件——Zend_Translate/Zend_Date。本节就利用了Zend_Translate/Zend_Date来实现根据客户端设置的不同,进行多语言(中文与日文)间的自由切换。

alt

alt

本例要点

本节序言中已经提及,在程序的逻辑与文字内容放在同一个PHP脚本中的情况下,假如想构筑内容相同的一个中文与一个英文的网页时,必须分别编写中文与英文的两个脚本。此时,当发生逻辑修改时,就是因为使用的语言不同,必须要修改上述两个脚本。如果不仅仅是这两个语言版本(其他的如日文、德文、法文等)呢,这显然会浪费很多开发时间,而且不方便管理。

Zend Framework中的Zend_Translate/Zend_Date组件就是为解决上述问题出现的。Zend_Date是根据本地使用的语言不同,改变日期的表示方式的组件。而Zend_Translate是根据本地使用的语言不同,切换文字内容的组件。应用Zend_Translate组件时,将与语言/地域有关的资源保存在别的文件中,而其他不依赖于语言的逻辑部分集中在一起。这样当逻辑部分发生修改时,就只用修改一个地方了。

目录结构

alt

.tmx文件是XML(eXtensible Markup Language)形式的文件,是在应用程序间传递翻译信息的标准格式。在Zend_Translate组件中,可以用数组、逗号间隔的文本文件或者二进制文件等格式来管理文本资源。由于具有扩展性/可读性好,编辑时不需要特殊的软件,不依赖OS平台等优点,本书选择了.tmx文件。

本例代码

alt

为了进行文本资源的翻译工作,生成Zend_Translate对象。在构造函数的参数里,指定“翻译时使用的适配器”,“适配器动作时需要的参数”。本节使用tmx适配器,这时第二个参数指定要读取的tmx文件。

alt

生成管理日期显示的Zend_Date对象,setXXX方法分别设置显示的年、月、日的值。

alt

以“对象名->_(键名)”的形式取得在tmx文件中定义的文本内容。这里,根据本地的使用的语言,取得键名为title的文本。

alt

get方法以指定的形式(于本地的使用的语言对应)取得Zend_Date对象中包含的日期。Zend_Date::DATE_FULL以完全的日期的形式显示。其他格式请参照Zend Framwork的参考资料。

alt

取得本地使用的语言。

alt

tmx文件的根<tmx>因子。

alt

定义资源正文的<body>因子。

alt

<tu >定义各个资源的因子。tuid中指定资源名称。

alt

<tuv >因子定义各个语言的文本。在xml:lang属性中指定语言。

alt

在定义含有“<”、“>”、“&”等XML预约字符的资源时,必须用CDATA块(<![CDATA[]]>)将资源包含起来。否则,就不能正确读取tmx文件了。请务必注意。

alt

补充

本例注意事项

本节中使用的Zend_Translate/Zend_Date组件,都是Zend Framework提供的组件,使用前必须事先设置为利用可能的状态。如果你是按照第1章介绍的步骤进行安装的话,Zend Framework已经是可使用的状态了,不用进行任何其他操作。

相关教程

共有条评论 网友评论

验证码: 看不清楚?