能不能替换翻译文件yii.php

看源码,yii和zii是coreMessages,在框架里面用到了的,但是现在我想更改某些翻译,那我能不能重新写一个yii.php,然后把Yii::t(‘yii’,‘xxx’)中的“yii”的路径更改为我自己实现的yii文件路径?

比如,yii.php里面的“Previous”翻译为“前页”,但是我想把它翻译为“上一页”,当然这个可以有很多种实现方式,比如

<?php $this->widget(‘zii.widgets.CListView’, array(

'dataProvider'=&gt;&#036;dataProvider,


'itemView'=&gt;'_view',


'template'=&gt;&quot;{items}&#092;n{pager}&quot;,


'separator'=&gt;&quot;&lt;hr /&gt;&quot;,


'pager'=&gt;array(


    'class'=&gt;'CLinkPager',


    'prevPageLabel'=&gt;'上一页',


)

)); ?>

就是一种实现方式,但是我想要一种更简便的方式,不用在view里面写,我知道的有几种方式:一是直接更改yii.php,二是更改CLinkPager类,三是新建一个类覆盖CLinkPager,但是前两种都会涉及到更改框架文件,最后一种虽然可以解决分页上的这个问题,但是并不通用。

我想问的就是有没有一种既不用更改框架文件,又能简便实现这个功能的方法?比如我把更改过的yii.php放到我自己的目录里面,然后在入口文件里面指定Yii::t()使用我的yii.php?

顺便问一下,如果我要重写CLinkPager类,那这个MyLinkPager类应该放到什么地方?怎么引入?

把 原始的yii.php/zii.php 拷贝到 messages 目录 如果你用的中文 那么放在messages/zh_cn 下即可 可以随意改 并不影响框架内核

不要把yii看的太特殊 它也是php框架 你可以任意构建自己的目录结构 然后按某种方式组织新加入的类

一种方式就是 按照原始框架的结构构建自己的结构:

比如 在protected 下 构建myProjName , myProjName/components , myProjName/widgets …

引用方法就是别名引用 Yii::import(‘applicaion.myProjName.compoents.XXX’);

刚开始时大家可能习惯放在components目录下(yii默认是导入的 引用时直接用类名即可) 但随着规模变大你会有其他各种方面的类(比如widgets behavior action 等)你仍需要组织一个文件结构

我之前就拷到messages/zh_cn下了,配置里面language也写的zh_cn,但是还是没效果喃?confi文件我也拷过来了,还有其他地方需要设置的么?