首頁  >  文章  >  php框架  >  ThinkPHP多語言如何實現你了解嗎?

ThinkPHP多語言如何實現你了解嗎?

咔咔
咔咔原創
2020-08-10 12:16:451965瀏覽

最近專案比較忙,就沒有怎麼寫文章。本文主要內容為多語言的後台是如何實現的。

前言

#公司需要寫一個多語言後台,以前也沒做過,於是到面向百度了一下。這是用了TP框架兩個年了,第一次發現框架是自帶的多語言切換功能。這裡著實給點一個讚。

接下來我們來實作一下這個功能。

一、後台實作多語言

#使用框架為v5. 1.38 LTS

來到設定檔config/app.php可以看到關於語言的設定資訊就只有這兩個參數。

lang_switch_on這個參數是自動監聽的瀏覽器語言,

default_lang關於這個參數就是在沒有切換其它語言之前就直接預設中文ThinkPHP多語言如何實現你了解嗎?設定檔了解之後我們需要在需要的模組建立lang目錄,並且配置對應語言的語言包。

這裡咔咔只配置了英文和中文  如還需要其它語言可自行添加即可。 ThinkPHP多語言如何實現你了解嗎?到這一步驟你會發現從頭到尾都沒有一個參數說是配置語言清單的參數。設定檔也沒有找到。

但是在文件裡你可以看到這行程式碼。我們去原始碼看看

ThinkPHP多語言如何實現你了解嗎?在原始碼中就可以看得明白,語言的cookie的name值也是固定的,並且cookie的有效期時間為3600,這些都是需要根據自己項目進行調整的。

最重要的是看允許語言清單。我們繼續追溯這個變數ThinkPHP多語言如何實現你了解嗎?在檔案thinkphp/library/think/Lang.php最後我們就可以看到一個方法,這個方法也正是文件給出的一個方法ThinkPHP多語言如何實現你了解嗎?由於我們整個後台都需要使用多語言,所以我們需要在common中進行設定ThinkPHP多語言如何實現你了解嗎?

#二、檢視切換語言

##在視圖模板裡直接呼叫

languageChange方法ThinkPHP多語言如何實現你了解嗎?在視圖中有一個變數為ThinkPHP多語言如何實現你了解嗎?$languageName,這個變數是咔咔直接從設定檔直接取出的,後期會調整到資料庫中。

ThinkPHP多語言如何實現你了解嗎?然後在控制器寫入方法changeLanguage,用來處理語言切換後的cookie改變ThinkPHP多語言如何實現你了解嗎?此時我們的後台頁面就是這樣的ThinkPHP多語言如何實現你了解嗎?

三、測試

#在經過上面的操作之後,我們就可以根據自己設定的語言包來進行語言切換了

在模板中我們就需要使用lang這個模板標籤進行獲取資料ThinkPHP多語言如何實現你了解嗎?這個是英文狀態ThinkPHP多語言如何實現你了解嗎?這個是中文狀態ThinkPHP多語言如何實現你了解嗎?到這關於多語言的實作就完成了。

四、總結

上面說了這麼多,只是把每一步的步驟寫出來給大家了。

其中關鍵點如下

  • application/config.php設定檔修改
  • #在對應的模組裡加入lang目錄,並且建立所需的語言包
  • 視圖進行語言切換呼叫後台介面儲存cookie值。保存在think_var
  • 模板使用lang標籤即可

堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望諾大互聯網中咔咔的文章能帶給你一絲幫助。

#

以上是ThinkPHP多語言如何實現你了解嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn