




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第Yii2語言國際化自動配置詳解如何實現(xiàn)語言國際自動化,大家可能覺得自動化,是不是不需要配置就自動切換,這個思路我之前也想過,能不能根據(jù)IP來判斷地理位置然后確定其語言,網(wǎng)上找過一個"IpToCountry"相關(guān)的,有興趣的可以搜索出來看看,他會提供一個ip對照的表,每隔一段時間會更新一次,不過這個暫時沒做,后面考慮嘗試下
這里我們說下Yii2如何實現(xiàn),因為我們上面的一篇文章分享做了語言國際化的配置,也將對應(yīng)的語言翻譯了出來,下面就是需要根據(jù)條件來做切換
從配置文件我們知道只需要更改language這個配置值就可以了,但是要在哪里更改呢。這里我的操作步驟如下
我想整體對項目的所有內(nèi)容進行語言國際化,唯一我能想到的是修改控制器,有的說是修改入口文件,我覺得修改入口文件有點破壞框架結(jié)構(gòu)了。
第一步創(chuàng)建一個AppController
繼承yii/web/Controller,實現(xiàn)如下
namespaceapp\controllers;
useYii;
useyii\web\Controller;
classAppControllerextendsController
publicfunctioninit()
if(isset(Yii::$app-session['_lang'])){
Yii::$app-language=Yii::$app-session['_lang'];
parent::init();
第二步將所有自己的控制器都繼承AppController
做類似如下操作,我這里只是舉了一個BlogController的例子
classBlogControllerextendsAppController
第三步實現(xiàn)設(shè)置多語言的處理
我這里在我的控制器SiteController加了如下Action
publicfunctionactionLanguage($language)
Yii::$app-session['_lang']=$language;
$redirectUrl=Yii::$app-request-headers['Referer'];
if(!$redirectUrl){
$redirectUrl=Yii::$app-homeUrl;
return$this-redirect($redirectUrl);
每次需要修改語言的話,只要將語言傳入actionLanguage,就會更改session中_lang的值,然后每個控制器在調(diào)用的時候都會先去更改項目的language
第四步前端UI修改
通過在前端加個修改的邏輯,方便前端訪問者進行更改語言設(shè)置
ahref="j#"rel="externalnofollow"data-target="#"data-toggle="dropdown"
{{Yii.t('app','Language')}}
b/b
class="{%ifapp.session['_lang']=='zh-CN'%}active{%endif%}"
href="{{url(['site/language'],{'language':'zh-CN'})}}"rel="externalnofollow"
{{Yii.t('app','Chinese')}}/a
/li
class="{%ifapp.session['_lang']=='en-US'%}active{%endif%}"
href="{{url(['site/language'],{'language':'en-US'})}}"rel="externalnofollow"
{{Yii.t('app','English')}}/a
/li
/ul
/li
/ul
我這里使用的Twig模板。
到這里就都設(shè)置完了,可以正常切換語言了。后面如果又加了新的內(nèi)容進去的話,可以直接執(zhí)行上文中提到的命令
./yiimessage/extract@app/config/i18n.php
如有不理解的地方可以加群詳細了解
ps:使用yii生成映射目錄
./yiimessage/extract@app/config/i18n.php
使用以上命令,實際上就是按照i18n.php中給定的參數(shù),執(zhí)行掃描操作,將所有形如Yii::t('app','xxx')這樣語句中的xxx取出,放入映射文件中。
這時,在common/messages中會有zh-CN文件夾生成,里面的app.php即為映射文件。
app.php
return[
'OpenId'='OpenId',
'UserId'='用戶id',
'UserName'='用戶名',
'UserPortrait'='用戶頭像',
'About'='關(guān)于我們',
'Areyousureyouwanttodeletethisitem'='確定要刪除?',
'Contact'='聯(lián)系方式',
'Create'='創(chuàng)建',
'CreateMyuser'='創(chuàng)建用戶',
'Delete'='刪除',
'Home'='首頁',
'Login'='登錄',
'MyCompany'='我的網(wǎng)站',
'Myusers'='用戶',
'Res
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)家長會方案中學(xué)家長會方案與流程
- 高級中式面點師試題庫+答案(附解析)
- 《保護校園環(huán)境衛(wèi)生從我做起》活動方案
- 網(wǎng)絡(luò)安全防護在智能安防的視頻內(nèi)容分析評估考核試卷
- 1月企業(yè)培訓(xùn)師模擬練習(xí)題含參考答案解析
- 北師大六年級下數(shù)學(xué)課件-小數(shù)點-北師大
- 不符合生活的設(shè)計缺陷分析
- 社會學(xué)理論與調(diào)查方法考核試卷
- 營養(yǎng)品生產(chǎn)流程與質(zhì)量控制要點考核試卷
- 拍賣行業(yè)公共服務(wù)創(chuàng)新模式探索考核試卷
- 2025年心理咨詢師執(zhí)業(yè)資格考試試題及答案
- 殯葬單位面試題及答案
- 網(wǎng)絡(luò)科學(xué)在社會網(wǎng)絡(luò)分析中的應(yīng)用-全面剖析
- 民法典講座課件
- 2024年蚌埠市龍子湖區(qū)產(chǎn)業(yè)發(fā)展有限公司招聘筆試真題
- 2025-2030中國螢石行業(yè)分析及供需形勢與投資風(fēng)險研究報告
- 【安全隨行】新員工入場三級安全教育培訓(xùn)
- 【《生育意愿及影響因素研究的國內(nèi)外文獻綜述》3400字】
- 建筑工地各工種安全操作規(guī)程
- 2025年南通市中考作文猜題及范文分析
- (四調(diào))武漢市2025屆高中畢業(yè)生四月調(diào)研考試 數(shù)學(xué)試卷(含答案詳解)
評論
0/150
提交評論