语言包:
//new file
messages/zh-CN/common.php
// config
'language'=>'zh-CN',
'components' => [ ... 'i18n' => [ 'translations' => [ 'common' => [ 'class' => 'yiii18nPhpMessageSource', //'basePath' => '/messages', 'fileMap' => [ 'common' => 'common.php', ], ], 'power' => [ 'class' => 'yiii18nPhpMessageSource', //'basePath' => '/messages', 'fileMap' => [ 'power' => 'power.php', ], ], ], ], ]
layout/site.php:
$menuRight = [ [ 'label' => Yii::t('common', 'Language'), 'dropDownOptions' => ['id' => 'drow-language', 'style' => 'min- 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 frontendcontrollers; use Yii; use yiiwebController; 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 yiiwebApplication($config); $application->language = isset(Yii::$app->session['language']) ? Yii::$app->session['language'] : 'zh-CN'; $application->run();