在 ECShop 系統中實現前台使用者可自由切換繁體中文、簡體中文、英文三種語言介面,並透過 Session 記住使用者偏好。
找到約第 200 行 if (!defined('INIT_NO_USERS')) 之前,插入語言偵測與設定代碼:
// 1. 接收 URL 參數切換語言
if (!empty($_REQUEST['lang'])) {
$_SESSION['lang'] = $_REQUEST['lang'];
}
// 2. 根據 Session 設定系統語言配置
if (!empty($_SESSION['lang'])) {
switch ($_SESSION['lang']) {
case 'zh_cn':
$_CFG['lang'] = 'zh_cn';
break;
case 'zh_tw':
$_CFG['lang'] = 'zh_tw';
break;
case 'en_us':
$_CFG['lang'] = 'en_us';
break;
}
}
// 3. 載入對應語言包並註冊到 Smarty
require(ROOT_PATH . 'languages/' . $_CFG['lang'] . '/common.php');
$smarty->assign('lang', $_LANG);
重要: 必須刪除原本文件中重複的語言包載入代碼 (通常在下方),避免覆蓋此處設定。
在頁面適當位置 (如頁首) 放置切換連結:
<a href="?lang=zh_cn">簡體中文</a> |
<a href="?lang=zh_tw">繁體中文</a> |
<a href="?lang=en_us">English</a>
lang 參數。init.php 攔截參數,寫入 $_SESSION['lang']。{$lang.xxx} 變數輸出多語言文字。languages/zh_cn, zh_tw, en_us 目錄下皆有完整的 common.php 及各模組語言檔。若需支援更多語言,只需在 switch 中增加 case,並補齊對應語言包目錄即可,架構具備良好擴充性。