Yii2.0 语言切换的简单设置

Posted tengjian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2.0 语言切换的简单设置相关的知识,希望对你有一定的参考价值。

多余的话不说,直接看代码:

1) 在 common/config/main.php 写入配置代码

 1 //        配置翻译信息
 2         \'i18n\' => [
 3             \'translations\' => [
 4                 \'app*\' => [   //app表示整个文件可以替换掉
 5                     \'class\' => \'yii\\i18n\\PhpMessageSource\',
 6                     \'basePath\' => \'@common/messages\',
 7 //                    \'sourceLanguage\' => \'en\',
 8                     \'fileMap\' => [
 9                         \'app\' => \'app.php\',
10                         \'app/error\' => \'error.php\',
11                     ],
12                 ],
13             ],
14         ],

 

2) 前台模板文件要写出切换的地址   frontend/views/layouts/main.php

1  $menuItems = [
2         [\'label\' => \'Home\', \'url\' => [\'/site/index\']],
3         [\'label\' => \'About\', \'url\' => [\'/site/about\']],
4         [\'label\' => \'Contact\', \'url\' => [\'/site/contact\']],
5         [\'label\' => Yii::t(\'app\',\'Chinese\'), \'url\' => [\'/site/language\',\'lang\'=>\'zh_CN\']],
6         [\'label\' => Yii::t(\'app\',\'English\'), \'url\' => [\'/site/language\',\'lang\'=>\'en\']],
7     ];

3) 根据模板传入的参数在控制器中写入代码  frontend/controllers/SiteController.php

1  //语言切换
2     public function actionLanguage(){
3         $language=  Yii::$app->request->get(\'lang\');
4         if(isset($language)){
5             Yii::$app->session[\'language\']=$language;
6         }
7         //切换完语言哪来的返回到哪里
8         $this->goBack(Yii::$app->request->headers[\'Referer\']);
9     }

4) 在入口文件处进行修改 frontend/wen/index.php 

$application = new yii\\web\\Application($config);
$application -> language = isset(Yii::$app->session[\'language\']) ? Yii::$app->session[\'language\'] : \'zh_CN\';
$application -> run();

//(new yii\\web\\Application($config))->run();

 

5) 根据配置创建文件路径  common/messages/en/app.php 

return [
    \'English\'=>\'English\',
    \'Chinese\'=>\'Chinese\',
];

common/messages/zh_CN/app.php 

return [
    \'English\'=>\'英文\',
    \'Chinese\'=>\'中文\',
];

5) 配置完成,效果如下图

注:app表示整个目录下文件可以换掉,可以针对每个目录进行语言配置。

 

以上是关于Yii2.0 语言切换的简单设置的主要内容,如果未能解决你的问题,请参考以下文章

Yii系列Yii2.0的安装与调试

[moka同学笔记]yii2.0 dropdownlist的简单使用

spring 国际化 js怎么设置

yii2.0 中的队列

RadioGroup结合RadioButton使用切换Fragment片段

如何使用yii2开发