yii2怎么設置切換語言

yii2設置切換語言的方法:首先配置組件;然后在web同級目錄下創建messages目錄,此目錄存放語言配置文件;接著給每個controller進行初始化;最后編寫控制器方法,實現語言切換即可。

yii2怎么設置切換語言


Yii2.0 實現多語言切換

推薦:《yii教程

1.配置組件

'components'?=>?[ ????????'i18n'?=>?[ ????????????'translations'?=>?[ ????????????????'*'?=>?[ ????????????????????'class'?=>?'yiii18nPhpMessageSource', ????????????????????//'basePath'?=>?'/messages', ????????????????????'fileMap'?=>?[ ????????????????????????'app'?=>?'app.php', ????????????????????], ????????????????], ????????????], ????????], ]

2.創建messages目錄

在web同級目錄下創建messages目錄,此目錄存放語言配置文件

創建messages/zh-CN/app.php,zh-CN為語言標識( Yii::$app->session[‘language’] = ‘zh-CN’ 即配置為zh-CN語言),app.php中存放語言配置數組(app.php的名字由配置組件時‘app’選項確定)

下面時app.php文件內容

<?php return [     //常用     &#39;Action&#39; =>?'操作', ????'Search'?=&gt;?'搜索', ????'Reset'?=&gt;?'重置', ];

3.實現語言切換

有兩種方法:

a:

需要給每個controller進行初始化(都寫上init函數),在init函數中主要就是給Yii::$app->language 賦值。例如:Yii::$app->language = ‘zh-CN’。

b:

在web/index.php(入口文件)中,將創建應用的代碼改為下面的代碼

$application?=?new?yiiwebApplication($config); $application-&gt;language?=?isset(Yii::$app-&gt;session['language'])???Yii::$app-&gt;session['language']?:?'en'; $application-&gt;run();

4.編寫控制器方法,實現語言切換

public?function?actionLanguage(){??????? ????$language=??Yii::$app-&gt;request-&gt;get('lang');?? ????if(isset($language)){?? ????????Yii::$app-&gt;session['language']=$language;?? ????}?? ????//切換完語言哪來的返回到哪里 ????$this-&gt;goBack(Yii::$app-&gt;request-&gt;headers['Referer']);?? }

要想實現語言的切換,只要帶’lang’參數調用此方法就可以了!

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享