這篇文章主要講解了“如何實現PHP項目多語言配置平臺”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現PHP項目多語言配置平臺”吧!
這個月用ant design的方式重構了我在15年的時候寫的一個給主端項目寫的多語言配置后臺。發現當時的設計很“深”,深到有些功能根本就沒用過,根據這幾年的使用情況,重構了這一版本,無論是體驗上還是實用性上都有所提高。今天抽時間把當時的一些想當然的需求拿出來總結下吧:
使用的技術
我們的項目主要是PHP為主要開發語言。使用gettext擴展實現國際化的。即通過人工的方式按照規則寫入.po文件,然后調用某函數生成.mo 文件,放到生產環境的文件夾下,然后在代碼里初始化一些內容進行引用。
gettext
gettext是php實現國際化的基本方式。使用方法如下:
安裝php擴展gettext,這個同php其他擴展一樣,這里就不詳細介紹了。
linux環境安裝msgfmt,安好后可用此命令將po文件生成.mo文件。
基本使用
建立文件如:zh_CN.po (.po是個文本文件),內容如下:
msgid "repeat content!"
msgstr "文本內容相同"
利用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'); // 函數設置地區信息(地域信息)
bindtextdomain($lang, {$pofile_path})); // 用來設置文本域目錄
textdomain($lang); // 設置默認域
bind_textdomain_codeset($lang, 'UTF-8');
在php的請求里面使用如下方法即可得到語境下對應詞組的內容:
gettext("repeat content!") // 文本內容必須與1中的內容一致。
或者
_("repeat content!"); // 與上面函數相同
管理后臺
以前都是開發人員自己上傳,后來為了解放開發者,讓產品自己操作,我們進行了如下改進:
做成可配置后臺,產品自己根據內容填寫。
配置后臺分成入口(權限控制),展示列表頁,即每個詞組key對應各種語言下的內容。
詳情頁,詳情頁支持批量添加。
點擊按鈕觸發發布。
發布高級功能:生成列表和支持比對,對歷史版本發布(拷貝歷史版本到對應的文件夾下)。
改進
經過一段時間的使用,我決定根據實際使用情況重構一版。
頁面全部采用ant design pro為基礎的框架,采用前后端分離的樣式,我特別推崇ant design的設計思想,和人機交互的開發方法,是后端開發者的福音。
淡化歷史版本的記錄。雖然有個好些,但是這個確實看的人少,基本沒有。
重新發布,如果有時間就做,沒時間就不做。
對于一些特殊內容的規定,如如果一個詞組key在某種語言環境下顯示為空,該怎么處理等等。
感謝各位的閱讀,以上就是“如何實現PHP項目多語言配置平臺”的內容了,經過本文的學習后,相信大家對如何實現PHP項目多語言配置平臺這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯網站建設公司,,小編將為大家推送更多相關知識點的文章,歡迎關注!
文章名稱:如何實現PHP項目多語言配置平臺-創新互聯
本文地址:http://vcdvsql.cn/article40/cschho.html
成都網站建設公司_創新互聯,為您提供定制開發、標簽優化、品牌網站制作、服務器托管、定制網站、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯