layout/site.php:
$menuRight = [ [ 'label' => Yii::t('common', 'Language'), 'dropDownOptions' => ['id' => 'drow-language', 'style' => 'min-width: 90px'], 'items' => [ ['label' => Yii::t('common', 'Chinese'), 'url' => ['/language/lang', 'lang' => 'zh-CN']], ['label' => Yii::t('common', 'English'), 'url' => ['/language/lang', 'lang' => 'en-US']], ] ], ]; echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-right'], 'items' => $menuRight, ]);
controllers/LanguageController.php
<?php namespace frontend\controllers; use Yii; use yii\web\Controller; class LanguageController extends Controller { // 多语言处理 public function actionLang($lang) { $session = Yii::$app->session; $session->open(); if (isset($lang)) { $session['language'] = $lang; } $this->goBack(Yii::$app->request->headers['Referer']); } }
web/index.php:
$application = new yii\web\Application($config); $application->language = isset(Yii::$app->session['language']) ? Yii::$app->session['language'] : 'zh-CN'; $application->run();