ThinkPHP多語言如何實現(xiàn)你了解過嗎?
最近項目比較忙,就沒有怎么寫文章。本文主要內(nèi)容為多語言的后臺是如何實現(xiàn)的。
實現(xiàn)多語言后臺
前言
一、后臺實現(xiàn)多語言
二、視圖切換語言
三、測試
四、總結(jié)
前言
公司需要寫一個多語言后臺,以前也沒做過,于是到面向百度了一下。這是用了TP框架倆年了,第一次發(fā)現(xiàn)框架是自帶的多語言切換功能。這里著實給點(diǎn)一個贊。
接下來我們來實現(xiàn)一下這個功能。
一、后臺實現(xiàn)多語言
使用框架為v5.1.38 LTS
來到配置文件config/app.php可以看到關(guān)于語言的配置信息就只有這倆個參數(shù)。
lang_switch_on這個參數(shù)是自動監(jiān)聽的瀏覽器語言,
default_lang關(guān)于這個參數(shù)就是在沒有切換其它語言之前就直接默認(rèn)中文
配置文件了解之后我們需要在需要的模塊創(chuàng)建lang目錄,并且配置對應(yīng)語言的語言包。
這里咔咔只配置了英文和中文 如還需要其它語言可自行添加即可。
到這一步你會發(fā)現(xiàn)從頭到尾都沒有一個參數(shù)說是配置語言列表的參數(shù)。配置文件也沒有找到。
但是在文檔里你可以看到這行代碼。我們?nèi)ピ创a看看
在源碼中就可以看得明白,語言的cookie的name值也是固定的,并且cookie的有效期時間為3600,這些都是需要根據(jù)自己項目進(jìn)行調(diào)整的。
最重要的是看允許語言列表。我們繼續(xù)追溯這個變量
在文件thinkphp/library/think/Lang.php最后我們就可以看到一個方法,這個方法也正是文檔給出的一個方法
由于我們整個后臺都需要使用多語言,所以我們需要在common中進(jìn)行配置
二、視圖切換語言
在視圖模板里直接調(diào)用languageChange方法
在視圖中有一個變量為$languageName,這個變量是咔咔直接從配置文件直接取出來的,后期會調(diào)整到數(shù)據(jù)庫中。
然后在控制器寫方法changeLanguage,用來處理語言切換后的cookie改變
此時我們的后臺頁面就是這樣的
三、測試
在經(jīng)過上面的操作之后,我們就可以根據(jù)自己設(shè)置的語言包來進(jìn)行語言切換了
在模板中我們就需要使用lang這個模板標(biāo)簽進(jìn)行獲取數(shù)據(jù)
這個是英文狀態(tài)
這個是中文狀態(tài)
到這關(guān)于多語言的實現(xiàn)就完成了。
四、總結(jié)
上面說了這么多,只是把每一步的步驟給大家寫出來了。
其中關(guān)鍵點(diǎn)如下
application/config.php配置文件修改
在對應(yīng)的模塊里添加lang目錄,并且創(chuàng)建需要的語言包
視圖進(jìn)行語言切換調(diào)用后臺接口存儲cookie值。保存在think_var
模板使用lang標(biāo)簽即可
堅持學(xué)習(xí)、堅持寫博、堅持分享是咔咔從業(yè)以來一直所秉持的信念。希望在諾大互聯(lián)網(wǎng)中咔咔的文章能帶給你一絲絲幫助。
ThinkPHP
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。