介绍
今天就跟大家聊聊有关怎么在Yii2中自动配置国际化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强>第一步创建一个有一个强>
继承yii/web/控制器,实现如下
& lt; php ? namespace 应用\控制器; use , Yii; use , yii \ web \控制器; class AppController  extends 控制器 { public 才能;function  init () {才能 ,,,if (收取(Yii:应用程序→美元会话(& # 39;_lang& # 39;])), { ,,,,,Yii:应用程序→美元language =, Yii:应用程序→美元会话(& # 39;_lang& # 39;); ,,,} ,,,的父母:init (); ,,} }
<强>第二步将所有自己的控制器都继承有强>
做类似如下操作,我这里只是举了一个BlogController的例子
class BlogController extends 有一个
<强>第三步实现设置多语言的处理强>
我这里在我的控制器SiteController加了如下行动
public function actionLanguage(语言) { Yii才能::$应用→会话(& # 39;_lang& # 39;],=,元语言; redirectUrl 美元;才能=,Yii:应用程序→美元请求→页眉(& # 39;推荐人# 39;); if 才能;(! $ redirectUrl), { ,,,redirectUrl 美元;=,Yii:应用程序→美元homeUrl; ,,} return 才能;这→美元重定向($ redirectUrl); }
每次需要修改语言的话,只要将语言传入actionLanguage,就会更改会话中_lang的值,然后每个控制器在调用的时候都会先去更改项目的语言
<强>第四步前端UI修改强>
通过在前端加个修改的逻辑,方便前端访问者进行更改语言设置
& lt; ul 类=皀av navbar-nav navbar-right"比; ,& lt; li 类=癲ropdown"比; & lt;才能a href=https://www.yisu.com/zixun/癹 #”rel=巴獠縩ofollow”数据目标==" # "类" dropdown-toggle " data-toggle="拉"> {{Yii。t(“应用程序”,“语言”)}} >
-
<一个
href=" {{url((“网站/语言”),{‘语言’:‘应用’})}}“rel=巴獠縩ofollow”> {{Yii。t(“应用程序”,“中国”)}}>
李>
<李
类="{%如果app.session [' _lang ']==癳n - us”%}积极{% endif %}”>
<一个
href=" {{url((“网站/语言”),{“语言”:“en - us”})}}“rel=巴獠縩ofollow”> {{Yii。t(“应用程序”,“英语”)}}>
李>
我这里使用的树枝模板。
到这里就都设置完了,可以正常切换语言了。后面如果又加了新的内容进去的话,可以直接执行上文中提到的命令
。/yii 消息/extract @app/config/i18n。php
如有不理解的地方可以加群详细了解
<>强ps:使用yii生成映射目录强>
。/yii 消息/extract @app/config/i18n.php
使用以上命令,实际上就是按照i18n.php中给定的参数,执行扫描操作,将所有形如yii:: t(& # 39;应用# 39;& # 39;xxx # 39;)这样语句中的xxx取出,放入映射文件中。
这时,在常见/信息中会有应用文件夹生成,里面的app.php即为映射文件。
应用程序。php
return ( & # 39;才能openid # 39;,=祝辞,& # 39;openid # 39; & # 39;才能userid # 39;,=祝辞,& # 39;用户id # 39;, & # 39;才能用户名# 39;,=祝辞,& # 39;用户名& # 39;, & # 39;才能UserPortrait& # 39;,=祝辞,& # 39;用户头像& # 39;, & # 39;才能对# 39;,=祝辞,& # 39;关于我们& # 39;, & # 39;才能断开连接;你sure 你want 用delete 却;能够项目? & # 39;,=祝辞,& # 39;确定要删除? & # 39; & # 39;才能接触# 39;,=祝辞,& # 39;联系方式& # 39;, & # 39;才能创建# 39;,=祝辞,& # 39;创建& # 39;, & # 39;才能Create Myuser& # 39;,=祝辞,& # 39;创建用户& # 39;, & # 39;才能删除# 39;,=祝辞,& # 39;删除& # 39;, & # 39;才能回家,,=祝辞,& # 39;首页& # 39;, & # 39;才能登录# 39;,=祝辞,& # 39;登录& # 39;, & # 39;才能My 公司# 39;,=祝辞,& # 39;我的网站& # 39;, & # 39;才能Myusers& # 39;,=祝辞,& # 39;用户& # 39;, & # 39;才能重置# 39;,=祝辞,& # 39;重置& # 39;, & # 39;才能搜索# 39;,=祝辞,& # 39;搜索& # 39;, & # 39;才能更新# 39;,=祝辞,& # 39;更新& # 39;, & # 39;才能Update {modelClass}:, & # 39;,=祝辞,& # 39;更新用户& # 39;, ];怎么在Yii2中自动配置国际化