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();
这样就可以实现语言切换了