Yii2.0 多语言设置(高级版配置方法)

1.设置默认语言:在web.php配置文件加上:'language'=>'zh-CN';

2.多语言切换 (我这边是在site控制器里面操作的所以用的'/site/language')

3.site控制器增加方法

//语言切换
    public function actionLanguage(){
        $language=  \Yii::$app->request->get('lang');
        if(isset($language)){
            \Yii::$app->session['language']=$language;
        }
        //切换完语言哪来的返回到哪里
        $this->goBack(\Yii::$app->request->headers['Referer']);
    }

4、web.php文件 components 数组增加如下代码:

       'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@app/messages',
                    'sourceLanguage' => 'en',
                    'fileMap' => [
                        'app' => 'yii.php',
                        'app/error' => 'error.php',
                    ],
                ],
            ],
        ],

5、配置文件的存放目录

/messages/zh-CN/yii.php 内容如下格式:

        return [

        'Hello'=>'你好',

        ];


6、html代码 :

<a href="<?php echo Yii::$app->urlManager->createUrl(['/site/language','lang'=>'zh_CN']);?>">中文</a>
<a href="<?php echo Yii::$app->urlManager->createUrl(['/site/language','lang'=>'en']);?>">English</a>
<p class="login-box-msg"><?=Yii::t('yii','Hello');?></p>

7.修改入口文件web/index.php :

(new yii\web\Application($config))->run();
改为:
$yii= new yii\web\Application($config);
$yii->language= isset(Yii::$app->session['language'])?Yii::$app->session['language']:'zh-CN';
$yii->run();

这样就可以实现语言切换了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值