於 Windows 安裝 Apache + PHP 的環境, 最簡單的就是用 AppServ.
AppServ 版本
在此使用 AppServ 2.5.10 版, Apache, PHP 等 版本資訊如下:
- Apache 2.2.8
- PHP 5.2.6
- MySQL 5.0.51b
- phpMyAdmin-2.10.3
開啟 PHP 的 gettext 支援
AppServ 2.5.10 的下載安裝完成後, 在 AppServ\php5\ext 有看到 php_gettext.dll, 但是於 phpinfo() 沒看到, 所以只要找到 php.ini, 開啟 gettext 支援即可.
AppServ php.ini 設定檔修改
下述挑其一:
- 開始 -> Programs -> AppServ -> Configuration Server -> PHP Edit the php.ini Configuration File
- 或 記事本 開啟 C:\WINDOWS\php.ini
- 修改 開啟 gettext
將
;extension=php_gettext.dll
改成
extension=php_gettext.dll - 重新啟動 Apache 即可.
Gettext 測試
- 將此篇 使用 gettext 來實做 PHP 多國語系支援(I18N) 的範例程式抓下來測試.(gettext_example.tgz)
- 將範例程式放到 C:\AppServ\www
- 開啟瀏覽器查看 http://localhost/hello.php
- 照理說, 應該就會看到 繁體, 簡體, 英文 三種語系正常顯示.
若發現有下述問題, 則請參照下述的處理方式.
GetText 在 Windows 的問題和解法
若在語系切換, 發現簡體出現亂碼的情況, 可另行檢視是否有下述問題:
- 於繁體中文網頁, 看瀏覽器 的 語系編碼, 是否被轉成 Big5 (照理說應該是 UTF-8), 轉成 UTF-8 反而會變亂碼.
- (簡述: 繁體, Big5 正常, UTF-8 亂碼)
- 於簡體中文網頁, 看瀏覽器 的 語系編碼, 若是 UTF-8 會看到正確的簡體中文字, 但是跟繁體中文同樣的文字, 都會是亂碼, 將 瀏覽器的語系編碼 改成 Big5, 則繁體中文的文字都正常顯示, 簡體文字變亂碼.
- (簡述: 簡體, UTF-8 簡體正常, 繁體的文字都是亂碼. Big5 繁體的文字都正常)
- 於英文網頁正常.
原因 與 解法
- 原因: UTF-8 的繁體中文, 都被 Windows 自動轉換成 Big5, 所以產生上述問題.
- 解法: 將 Windows 程式系統的語系, 設定為英文即可.
將 Windows 程式系統語系 設為 英文
- Settings(設定) -> Control Panel(控制台) -> Regional and Language Options
- Advanced
- Language for non-Unicode programs 區塊
- 選 English (United States)
- 設定完成重新開機
- 再來 PHP + gettext 就可以正常顯示使用囉~