首頁 >php框架 >YII >yii2怎麼切換多語言包

yii2怎麼切換多語言包

angryTom
angryTom原創
2020-02-17 12:02:522525瀏覽

yii2怎麼切換多語言包

yii2怎麼切換多語言套件

#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'參數呼叫此方法就可以了!

更多關於yii的使用技巧,建站教程,請關注

網站建設教程

。  

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

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