很多公司面向全球服務,網站多語言就成了必選項,那么如何實現(xiàn)網站多語言呢?
ThinkPHP作為國內非常流行的PHP網站開發(fā)框架,其實他已經內置集成了多語言的功能,只要我們按照要求配置就行了。
首先,在中間件配置文件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參數(shù)判斷使用哪個語言
'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數(shù)組方式,可分組配置,每個語言版本變量一致。

最后,綁定語言變量到模板,并通過URL切換語言
綁定變量如:{$Think.lang.site_menu_home}
切換語言只需要在URL后面加上參數(shù)lang,如:index.php?lang=zh-en
是不是很簡單?如下所示可實現(xiàn)



方維網絡專注于高端網站定制和小程序開發(fā),為客戶提供周到的網絡服務,如有需求,歡迎咨詢400-800-9385