首頁  >  文章  >  php框架  >  yii2怎麼設定切換語言

yii2怎麼設定切換語言

藏色散人
藏色散人原創
2020-07-20 10:15:392730瀏覽

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

yii2怎麼設定切換語言


#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 [
    //常用
    &#39;Action&#39; => &#39;操作&#39;,
    &#39;Search&#39; => &#39;搜索&#39;,
    &#39;Reset&#39; => &#39;重置&#39;,
];

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[&#39;language&#39;]) ? \Yii::$app->session[&#39;language&#39;] : &#39;en&#39;;
$application->run();

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

public function actionLanguage(){       
    $language=  \Yii::$app->request->get(&#39;lang&#39;);  
    if(isset($language)){  
        \Yii::$app->session[&#39;language&#39;]=$language;  
    }  
    //切换完语言哪来的返回到哪里
    $this->goBack(\Yii::$app->request->headers[&#39;Referer&#39;]);  
}

要實作語言的切換,只要帶'lang'參數呼叫此方法就可以了!

以上是yii2怎麼設定切換語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn