主頁(yè) > 知識(shí)庫(kù) > PHP項(xiàng)目多語(yǔ)言配置平臺(tái)實(shí)現(xiàn)過(guò)程解析

PHP項(xiàng)目多語(yǔ)言配置平臺(tái)實(shí)現(xiàn)過(guò)程解析

熱門(mén)標(biāo)簽:廈門(mén)400電話(huà)辦理選易號(hào)網(wǎng) 臨沂crm外呼系統(tǒng)平臺(tái) 如何在世界地圖標(biāo)注 梧州市機(jī)器人外呼系統(tǒng)怎么樣 電子地圖標(biāo)注怎么修改 天客通地圖標(biāo)注 公司外呼系統(tǒng)中心 菏澤語(yǔ)音外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注符號(hào)樣式有

這個(gè)月用ant design的方式重構(gòu)了我在15年的時(shí)候?qū)懙囊粋€(gè)給主端項(xiàng)目寫(xiě)的多語(yǔ)言配置后臺(tái)。發(fā)現(xiàn)當(dāng)時(shí)的設(shè)計(jì)很“深”,深到有些功能根本就沒(méi)用過(guò),根據(jù)這幾年的使用情況,重構(gòu)了這一版本,無(wú)論是體驗(yàn)上還是實(shí)用性上都有所提高。今天抽時(shí)間把當(dāng)時(shí)的一些想當(dāng)然的需求拿出來(lái)總結(jié)下吧:

使用的技術(shù)

我們的項(xiàng)目主要是PHP為主要開(kāi)發(fā)語(yǔ)言。使用gettext擴(kuò)展實(shí)現(xiàn)國(guó)際化的。即通過(guò)人工的方式按照規(guī)則寫(xiě)入.po文件,然后調(diào)用某函數(shù)生成.mo 文件,放到生產(chǎn)環(huán)境的文件夾下,然后在代碼里初始化一些內(nèi)容進(jìn)行引用。

gettext

gettext是php實(shí)現(xiàn)國(guó)際化的基本方式。使用方法如下:

安裝php擴(kuò)展gettext,這個(gè)同php其他擴(kuò)展一樣,這里就不詳細(xì)介紹了。

linux環(huán)境安裝msgfmt,安好后可用此命令將po文件生成.mo文件。

基本使用

建立文件如:zh_CN.po (.po是個(gè)文本文件),內(nèi)容如下:

msgid "repeat content!"
msgstr "文本內(nèi)容相同"

利用msgfmt將.po文件生成.mo文件。

msgfmt -o {$lang_path}/zh_CN.mo {$lang_path}/zh_CN.po

將生成的.po文件拷貝到你指定的文件夾 target_dir 下。

在php代碼里面初始化。

$lang = 'zh_CN'; //
setlocale(LC_MESSAGES, 'en_US.UTF-8'); // 函數(shù)設(shè)置地區(qū)信息(地域信息)
bindtextdomain($lang, {$pofile_path})); // 用來(lái)設(shè)置文本域目錄
textdomain($lang); // 設(shè)置默認(rèn)域
bind_textdomain_codeset($lang, 'UTF-8');

在php的請(qǐng)求里面使用如下方法即可得到語(yǔ)境下對(duì)應(yīng)詞組的內(nèi)容:

gettext("repeat content!") // 文本內(nèi)容必須與1中的內(nèi)容一致。

或者

_("repeat content!"); // 與上面函數(shù)相同

管理后臺(tái)

以前都是開(kāi)發(fā)人員自己上傳,后來(lái)為了解放開(kāi)發(fā)者,讓產(chǎn)品自己操作,我們進(jìn)行了如下改進(jìn):

  • 做成可配置后臺(tái),產(chǎn)品自己根據(jù)內(nèi)容填寫(xiě)。
  • 配置后臺(tái)分成入口(權(quán)限控制),展示列表頁(yè),即每個(gè)詞組key對(duì)應(yīng)各種語(yǔ)言下的內(nèi)容。
  • 詳情頁(yè),詳情頁(yè)支持批量添加。
  • 點(diǎn)擊按鈕觸發(fā)發(fā)布。
  • 發(fā)布高級(jí)功能:生成列表和支持比對(duì),對(duì)歷史版本發(fā)布(拷貝歷史版本到對(duì)應(yīng)的文件夾下)。

改進(jìn)

經(jīng)過(guò)一段時(shí)間的使用,我決定根據(jù)實(shí)際使用情況重構(gòu)一版。

  • 頁(yè)面全部采用ant design pro為基礎(chǔ)的框架,采用前后端分離的樣式,我特別推崇ant design的設(shè)計(jì)思想,和人機(jī)交互的開(kāi)發(fā)方法,是后端開(kāi)發(fā)者的福音。
  • 淡化歷史版本的記錄。雖然有個(gè)好些,但是這個(gè)確實(shí)看的人少,基本沒(méi)有。
  • 重新發(fā)布,如果有時(shí)間就做,沒(méi)時(shí)間就不做。
  • 對(duì)于一些特殊內(nèi)容的規(guī)定,如如果一個(gè)詞組key在某種語(yǔ)言環(huán)境下顯示為空,該怎么處理等等。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP安全配置優(yōu)化詳解
  • Nginx+php配置文件及原理解析
  • VSCode+PHPstudy配置PHP開(kāi)發(fā)環(huán)境的步驟詳解
  • php開(kāi)發(fā)最強(qiáng)大的IDE編輯的phpstorm 2020.2配置Xdebug調(diào)試的詳細(xì)教程
  • Thinkphp 框架配置操作之動(dòng)態(tài)配置、擴(kuò)展配置及批量配置實(shí)例分析
  • 在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫(xiě)
  • 淺談thinkphp的nginx配置,以及重寫(xiě)隱藏index.php入口文件方法
  • 詳解Hbuilder中PHP環(huán)境配置

標(biāo)簽:郴州 貴陽(yáng) 白城 黃石 雞西 迪慶 瀘州 綿陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP項(xiàng)目多語(yǔ)言配置平臺(tái)實(shí)現(xiàn)過(guò)程解析》,本文關(guān)鍵詞  PHP,項(xiàng)目,多,語(yǔ)言,配置,平臺(tái),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP項(xiàng)目多語(yǔ)言配置平臺(tái)實(shí)現(xiàn)過(guò)程解析》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PHP項(xiàng)目多語(yǔ)言配置平臺(tái)實(shí)現(xiàn)過(guò)程解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章