yii2設定切換語言的方法:首先配置元件;然後在web同級目錄下建立messages目錄,此目錄存放語言設定檔;接著給每個controller進行初始化;最後編寫控制器方法,實現語言切換即可。
#Yii2.0 實作多語言切換
推薦:《yii教學》
1.設定元件
'components' => [ 'i18n' => [ 'translations' => [ '*' => [ 'class' => 'yii\i18n\PhpMessageSource', //'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 [ //常用 'Action' => '操作', 'Search' => '搜索', 'Reset' => '重置', ];
3.實作語言切換
有兩種方法:
a:
需要給每個controller初始化(都寫上init函式) ,在init函數中主要就是給Yii::$app->language 賦值。例如:Yii::$app->language = 'zh-CN'。
b:
在web/index.php(入口檔案),將建立應用的程式碼改為下面的程式碼
$application = new yii\web\Application($config); $application->language = isset(\Yii::$app->session['language']) ? \Yii::$app->session['language'] : 'en'; $application->run();
4.寫控制器方法,實作語言切換
public function actionLanguage(){ $language= \Yii::$app->request->get('lang'); if(isset($language)){ \Yii::$app->session['language']=$language; } //切换完语言哪来的返回到哪里 $this->goBack(\Yii::$app->request->headers['Referer']); }
要實作語言的切換,只要帶'lang'參數呼叫此方法就可以了!
以上是yii2怎麼設定切換語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!