ThinkPhp多語言如何實現你瞭解過嗎?

最近項目比較忙,就沒有怎麼寫文章。本文主要內容爲多語言的後臺是如何實現的。php

前言

公司須要寫一個多語言後臺,之前也沒作過,因而到面向百度了一下。這是用了TP框架倆年了,第一次發現框架是自帶的多語言切換功能。這裏着實給點一個贊。web

接下來咱們來實現一下這個功能。thinkphp

1、後臺實現多語言

使用框架爲v5.1.38 LTS數據庫

來到配置文件config/app.php能夠看到關於語言的配置信息就只有這倆個參數。瀏覽器

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

default_lang關於這個參數就是在沒有切換其它語言以前就直接默認中文配置文件瞭解以後咱們須要在須要的模塊建立lang目錄,而且配置對應語言的語言包。cookie

這裏咔咔只配置了英文和中文  如還須要其它語言可自行添加便可。到這一步你會發現從頭至尾都沒有一個參數說是配置語言列表的參數。配置文件也沒有找到。app

可是在文檔裏你能夠看到這行代碼。咱們去源碼看看框架

在源碼中就能夠看得明白,語言的cookie的name值也是固定的,而且cookie的有效期時間爲3600,這些都是須要根據本身項目進行調整的。編輯器

最重要的是看容許語言列表。咱們繼續追溯這個變量在文件thinkphp/library/think/Lang.php最後咱們就能夠看到一個方法,這個方法也正是文檔給出的一個方法因爲咱們整個後臺都須要使用多語言,因此咱們須要在common中進行配置

2、視圖切換語言

在視圖模板裏直接調用languageChange方法在視圖中有一個變量爲$languageName,這個變量是咔咔直接從配置文件直接取出來的,後期會調整到數據庫中。

而後在控制器寫方法changeLanguage,用來處理語言切換後的cookie改變此時咱們的後臺頁面就是這樣的

3、測試

在通過上面的操做以後,咱們就能夠根據本身設置的語言包來進行語言切換了

在模板中咱們就須要使用lang這個模板標籤進行獲取數據這個是英文狀態這個是中文狀態到這關於多語言的實現就完成了。

4、總結

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

其中關鍵點以下

  • application/config.php配置文件修改
  • 在對應的模塊裏添加lang目錄,而且建立須要的語言包
  • 視圖進行語言切換調用後臺接口存儲cookie值。保存在think_var
  • 模板使用lang標籤便可

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


本文分享自微信公衆號 - PHP初學者必看(PHP0022)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索