很多公司面向全球服務,網站多語言就成了必選項,那么如何實現網站多語言呢?
ThinkPHP作為國內非常流行的PHP網站開發框架,其實他已經內置集成了多語言的功能,只要我們按照要求配置就行了。
首先,在中間件配置文件middleware.php中啟用,注意,如果是多應用模式,則需要使用的應用里加載。如下代碼所示:
return[
//多語言加載
\think\middleware\LoadLangPack::class,
];
其次,配置好多語言配置文件lang.php,如下代碼所示
return[
//默認語言
'default_lang'=env('lang.default_lang','en-us'),
//允許的語言列表
'allow_lang_list'=['en-us','zh-cn','zh-hk'],
//多語言自動偵測變量名,可通過URL參數判斷使用哪個語言
'detect_var'='lang',
//是否使用Cookie記錄
'use_cookie'=true,
//多語言cookie變量,通過保存這個cookie記錄用戶選項
'cookie_var'='think_lang',
//多語言header變量
'header_var'='think-lang',
//擴展語言包,主要是分多個語言文件的時候使用
'extend_list'=[
'en-us'=[
app()-getAppPath().'home\lang\en-us\common.php',
app()-getAppPath().'home\lang\en-us\index.php'
],
'zh-cn'=[
app()-getAppPath().'home\lang\zh-cn\common.php',
app()-getAppPath().'home\lang\zh-cn\index.php'
],
'zh-hk'=[
app()-getAppPath().'home\lang\zh-hk\common.php',
app()-getAppPath().'home\lang\zh-hk\index.php'
],
],
//Accept-Language轉義為對應語言包名稱
'accept_language'=[
'zh-hans-cn'='zh-cn',
],
//是否支持語言分組
'allow_group'=true
];
再次,編寫多語言翻譯文件。如下圖所示,主要以PHP數組方式,可分組配置,每個語言版本變量一致。
最后,綁定語言變量到模板,并通過URL切換語言
綁定變量如:{$Think.lang.site_menu_home}
切換語言只需要在URL后面加上參數lang,如:index.php?lang=zh-en
是不是很簡單?如下所示可實現
中企動力專注于高端網站定制和小程序開發,為客戶提供周到的網絡服務,如有需求,歡迎咨詢400-660-8066