yii2怎么设置切换语言

发布时间 - 2020-07-20 00:00:00    点击率:
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文件内容

 '操作',
    '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'参数调用此方法就可以了!


# 配置文件  # 目录下  # 要想  # 有两种  # 写上  # 哪来  # 就可以  # 多语言  # 只要带  # 到哪里 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  如何在搬瓦工VPS快速搭建网站?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Laravel Fortify是什么,和Jetstream有什么关系  如何用搬瓦工VPS快速搭建个人网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  iOS发送验证码倒计时应用  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  北京网站制作的公司有哪些,北京白云观官方网站?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何快速搭建二级域名独立网站?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  如何基于PHP生成高效IDC网络公司建站源码?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  如何快速搭建高效简练网站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  EditPlus中的正则表达式 实战(1)  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何挑选优质建站一级代理提升网站排名?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Python结构化数据采集_字段抽取解析【教程】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何在IIS管理器中快速创建并配置网站?  详解vue.js组件化开发实践  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel如何创建自定义Facades?(详细步骤)  Laravel如何发送系统通知?(Notification渠道示例)  EditPlus中的正则表达式 实战(2)  JS中对数组元素进行增删改移的方法总结  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  C语言设计一个闪闪的圣诞树  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在Tomcat中配置并部署网站项目?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性