yii2怎么切换多语言包

发布时间 - 2020-02-17 00:00:00    点击率:

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文件内容

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

更多关于yii的使用技巧,建站教程,请关注网站建设教程。  


# php  # Session  # YII  # 关注网站建设  # 要想  # 建站  # 有两种  # 更多关于  # 写上  # 哪来  # 配置文件  # 使用技巧  # 就可以 


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


相关推荐: Laravel模型事件有哪些_Laravel Model Event生命周期详解  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel如何使用Sanctum进行API认证?(SPA实战)  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  米侠浏览器网页背景异常怎么办 米侠显示修复  如何基于PHP生成高效IDC网络公司建站源码?  深入理解Android中的xmlns:tools属性  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  使用spring连接及操作mongodb3.0实例  JS碰撞运动实现方法详解  如何实现javascript表单验证_正则表达式有哪些实用技巧  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Python文件异常处理策略_健壮性说明【指导】  如何用PHP快速搭建CMS系统?  LinuxShell函数封装方法_脚本复用设计思路【教程】  如何在云主机上快速搭建网站?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel如何发送系统通知?(Notification渠道示例)  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何在搬瓦工VPS快速搭建网站?  Laravel如何创建自定义Artisan命令?(代码示例)  制作企业网站建设方案,怎样建设一个公司网站?  Laravel怎么实现模型属性的自动加密  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在Windows环境下新建FTP站点并设置权限?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  深圳网站制作的公司有哪些,dido官方网站?  Laravel如何为API生成Swagger或OpenAPI文档  如何挑选最适合建站的高性能VPS主机?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Java解压缩zip - 解压缩多个文件或文件夹实例  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何用5美元大硬盘VPS安全高效搭建个人网站?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  网站建设整体流程解析,建站其实很容易!  javascript中的try catch异常捕获机制用法分析  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  如何为不同团队 ID 动态生成多个“认领值班”按钮  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  佛山企业网站制作公司有哪些,沟通100网上服务官网?