2015-07-29 16:32:42 11278次浏览 1条回答 1 悬赏 10 金钱

我项目用的是advanced程序模板,我在frontend>components下建了一个a.php文件,代码如下:

<?php
/**
 * a.php
 * ------
 */
namespace frontend\components;
use Yii;

class a extends \yii\base\Object {
    public static function test(){
        return Yii::t('app', 'test ok');
    }
?>

然后,我在frontend>messages>zh-CN下建了一个app.php文件,代码如下:

<?php
/**
 * app.php
 * ------
 */
return [
    'test ok' => '测试好了',
];
?>

我在frontend模块下调用a::test(),可以正常返回测试好了,可我在backend模块下调用就不能正常返回,只返回test ok

我的问题是:能不能在backend模块下也能正常使用a::test(),而不用在backend>messages>zh-CN下再重复建一个app.php文件,再把内容复制过来

最佳答案

  • Ricky_nie 发布于 2015-07-29 16:35 举报

    你把app.php放在common\messages\zh-CN\app.php不就好了?当然,要改下配置文件,我就是这么玩的

    2 条回复
    回复于 2015-07-29 16:37 回复

    怎么改配置呢?

    回复于 2015-07-29 16:39 回复

    common\config\main.phpcomponents下增加

    'i18n' => [
        'translations' => [
            'app*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@common/messages',
                //'sourceLanguage' => 'en',
                'fileMap' => [
                    'app' => 'app.php',
                    'app/error' => 'error.php',
                ],
            ],
            'model*' => [
                'class' => 'yii\i18n\PhpMessageSource',
                'basePath' => '@common/messages',
                'fileMap' => [
                    'model' => 'model.php'
                ]
            ]
        ],
    ],
    
    
    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
tgy3300
见习主管

tgy3300

注册时间:2015-03-20
最后登录:2018-09-12
在线时长:19小时53分
  • 粉丝4
  • 金钱10
  • 威望10
  • 积分300

热门问题