很多公司面向全球服務(wù),網(wǎng)站多語(yǔ)言就成了必選項(xiàng),那么如何實(shí)現(xiàn)網(wǎng)站多語(yǔ)言呢?
ThinkPHP作為國(guó)內(nèi)非常流行的PHP網(wǎng)站開(kāi)發(fā)框架,其實(shí)他已經(jīng)內(nèi)置集成了多語(yǔ)言的功能,只要我們按照要求配置就行了。
首先,在中間件配置文件middleware.php中啟用,注意,如果是多應(yīng)用模式,則需要使用的應(yīng)用里加載。如下代碼所示:
return [
// 多語(yǔ)言加載
\think\middleware\LoadLangPack::class,
];
其次,配置好多語(yǔ)言配置文件lang.php,如下代碼所示
return [
// 默認(rèn)語(yǔ)言
'default_lang' => env('lang.default_lang', 'en-us'),
// 允許的語(yǔ)言列表
'allow_lang_list' => ['en-us','zh-cn','zh-hk'],
// 多語(yǔ)言自動(dòng)偵測(cè)變量名,可通過(guò)URL參數(shù)判斷使用哪個(gè)語(yǔ)言
'detect_var' => 'lang',
// 是否使用Cookie記錄
'use_cookie' => true,
// 多語(yǔ)言cookie變量,通過(guò)保存這個(gè)cookie記錄用戶選項(xiàng)
'cookie_var' => 'think_lang',
// 多語(yǔ)言header變量
'header_var' => 'think-lang',
// 擴(kuò)展語(yǔ)言包,主要是分多個(gè)語(yǔ)言文件的時(shí)候使用
'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轉(zhuǎn)義為對(duì)應(yīng)語(yǔ)言包名稱
'accept_language' => [
'zh-hans-cn' => 'zh-cn',
],
// 是否支持語(yǔ)言分組
'allow_group' => true
];
再次,編寫(xiě)多語(yǔ)言翻譯文件。如下圖所示,主要以PHP數(shù)組方式,可分組配置,每個(gè)語(yǔ)言版本變量一致。

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



方維網(wǎng)絡(luò)專注于高端網(wǎng)站定制和小程序開(kāi)發(fā),為客戶提供周到的網(wǎng)絡(luò)服務(wù),如有需求,歡迎咨詢400-800-9385
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://723918.com/news/6532.html