对语言配置进行扩展

2014-09-01 16:49:19
王春生
34508
最后编辑:朱金勇 于 2023-03-20 08:57:47
分享链接

一、语言的扩展

zentaoPHP框架把所有页面提示都已经抽象成语言配置,可以通过对语言的重定义来实现对程序的定制修改。

语言的扩展文件存放在ext/lang/目录下面。按照不同的语言建立相应的目录,比如zh-cn下面,可以有多个文件,zentaoPHP框架会自动加载该目录下面所有以.php结尾的文件。

比如扩展bug模块的语言文件,可以建立module/bug/ext/lang/zh-cn/1.php。

二、配置的扩展

2.1 模块配置的扩展

每个模块配置文件的扩展文件存放在ext/config/目录下面,可以有多个文件,zentaoPHP框架会自动加载该目录下面以config开头的.php文件。这样不同的扩展可以有自己的配置项,彼此之间不会冲突。


2.2 全局配置的扩展

全局配置文件存放在框架基础目录的config目录下面,不建议直接修改config.php文件,可以在同目录下的my.php中修改,因为config会自动载入my.php文件中的内容。如果相对全局的配置进行扩展,也可以参考禅道等产品的扩展方式,将扩展文件存放在config/ext/目录下面,在禅道的conifg.php文件底部你可以看到下面代码:


/* Include extension config files. */
$extConfigFiles = glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ext/*.php');
if($extConfigFiles) foreach($extConfigFiles as $extConfigFile) include $extConfigFile;

注意:本文档是针对禅道16.5版本之前的zentaoPHP框架,禅道最新版本的二次开发文档请参照新版:
https://devel.easycorp.cn/book/extension-new/intro-52.html

评论列表
代学 2019-05-06 20:28:03
你好,请问是这里写错了还是版本太老了,我看禅道上的全局配置文件是在zentao/config目录下,没有module/config目录
薛才杰 2019-05-07 10:13:07
禅道的全局配置文件在框架基础目录的config目录下,禅道将配置文件的扩展放在config/ext/下,您可以看下config.php文件最后面的代码:
/* Include extension config files. */
$extConfigFiles = glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ext/*.php');
if($extConfigFiles) foreach($extConfigFiles as $extConfigFile) include $extConfigFile;
王春生 2019-05-08 10:02:58
谢谢反馈。已经调整了。
小码农 2018-05-28 11:28:40
春哥,我windows上用zentao集成环境,装xdebug扩展,在php.ini里修改后保存重启apachezt,不生效,版本是对的,我用其他集成环境就可以,该怎么解决,求指教。。谢谢!!
王春生 2018-05-28 18:42:13
没有必要装xdebug。
resource.php 怎么扩展 2017-12-13 10:39:17
resource.php 怎么扩展
王春生 2017-12-14 08:29:12
按照语言扩展就行。把resource里面的配置项放到语言的扩展文件里面就可以生效。
surichard 2017-11-23 15:21:54
我用的是禅道9.1.2,现在bug状态只有3种,但我想增加3种,把数据库的bug状态枚举类型也增加了,为什么在扩展语言配置时没有效果?
王春生 2017-11-24 09:32:34
按照我们的扩展机制修改。
Tone 2017-11-14 17:21:48
语言栏只能扩展不能完全覆盖吗?比如说我在客户管理>产品>添加产品的时候,有个类型下拉框。值为实体类、虚拟类、服务类,我想改成软件类和服务类。只能修改原来的文件: ranzhi\app\sys\product\lang\*,如果不该源文件,直接在 ranzhi\app\sys\product\ext\lang\zh_CN里添加一个文件,会变成 实体类、虚拟类、服务类、软件类四个选项,并没有覆盖掉,而是在原有的基础上增加了
王春生 2017-11-17 08:11:10
可以。在语言配置文件中将之前的变量unset掉,然后重新设置就可以。
MickyQ 2017-07-21 14:55:58
新增一个模块,在module/common/ext/lang/zh-cn/1.php新增菜单,中文显示是乱码?
王春生 2017-07-21 16:25:43
编码改成utf-8.
sad 2017-06-10 10:07:23
对语言配置进行扩展 是属于继承扩展还是独立扩展
王春生 2017-06-13 15:33:59
语言的配置都是用对象-属性的方式来定义的。扩展相当于重新定义。
倒手党 2016-07-08 11:00:29
有什么办法能在当前模块引用另一个模块的语言包呢?
王春生 2016-07-10 14:16:04
先加载。$this->app->loadLang(xxxx)
然后再正常引用就好了。$this->lang->xxxx->xxxx
1/1
发表评论
评论通过审核后显示。