在 PHP Smarty 框架中實現多語言支持,你可以遵循以下步驟:
translations.en.ini
的英文翻譯文件:歡迎 = Welcome
用戶名 = Username
密碼 = Password
同樣,為其他語言創建相應的翻譯文件,如 translations.zh.ini
。
smarty.conf.php
),在其中添加以下代碼以啟用多語言支持:$smarty->setConfig('locale', 'en_US'); // 設置默認語言環境
$smarty->setConfig('default_language', 'en'); // 設置默認語言
Language.class.php
),該類將負責處理翻譯文件的加載和字符串的翻譯。在這個類中,你可以使用 PHP 的內置函數 gettext()
或 __()
, _e()
等來實現翻譯功能。例如:class Language {
private $translations = array();
public function __construct($language) {
$this->loadTranslations($language);
}
private function loadTranslations($language) {
$filename = "translations." . $language . ".ini";
if (file_exists($filename)) {
$this->translations = parse_ini_file($filename, true);
}
}
public function translate($key) {
return isset($this->translations[$key]) ? $this->translations[$key] : $key;
}
}
Language
類并傳入相應的語言代碼(例如 ‘en’ 或 ‘zh’)。然后使用 translate()
方法來翻譯字符串。例如:{* 假設用戶選擇了中文 *}
{set language = 'zh'}
{include file="Language.class.php"}
歡迎 {$language::translate('歡迎')}
用戶名 {$language::translate('用戶名')}
密碼 {$language::translate('密碼')}
$smarty->setConfig('locale', '...');
和 $smarty->setConfig('default_language', '...');
中的參數,以實現在運行時切換語言。通過以上步驟,你應該可以在 PHP Smarty 框架中實現多語言支持。