ThinkPHP 內置強大的多語言支持,通過語言包 + 行為擴展實現零侵入式國際化。本文梳理完整配置流程,助你快速構建多語言應用。
return array(
'LANG_SWITCH_ON' => true, // 啟用語言包
'LANG_AUTO_DETECT' => true, // 自動偵測瀏覽器語言
'DEFAULT_LANG' => 'zh-cn', // 默認語言
'LANG_LIST' => 'en-us,zh-cn,zh-tw', // 允許語言列表
'VAR_LANGUAGE' => 'l', // URL 切換變量名
);
return array(
'app_begin' => array('CheckLang')
);
將框架 Extend/Behavior/CheckLangBehavior.class.php 複製至 Home/Lib/Behavior/,或自行創建。核心邏輯:
LANG_SET目錄結構:
Home/Lang/
├── zh-cn/common.php
├── en-us/common.php
└── zh-tw/common.php
文件格式(返回鍵值對數組):
'歡迎使用 ThinkPHP',
'login' => '登錄',
'logout' => '退出'
);
// en-us/common.php
return array(
'welcome' => 'Welcome to ThinkPHP',
'login' => 'Login',
'logout' => 'Logout'
);
<div class="result">{$Think.lang.welcome}</div>
<a href="?l=zh-cn">簡體中文</a> |
<a href="?l=en-us">English</a> |
<a href="?l=zh-tw">繁體中文</a>
public function index() {
echo L('welcome'); // 輸出當前語言對應文本
$this->display();
}
Home/Lang/zh-cn/User.php 對應 User 模塊'hello' => 'Hello, %s!',調用 L('hello', 'John')ADMIN_LANG_LISTLANG_SWITCH_ON、tags.php 掛載、行為類路徑VAR_LANGUAGE 參數名一致、Cookie 權限掌握此機制,可輕鬆構建支持多語言的企業級應用,滿足全球化業務需求。