怎么在Yii2中自动配置国际化

  介绍

今天就跟大家聊聊有关怎么在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(“应用程序”,“语言”)}}          {{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中自动配置国际化