佈景主題的 i18n 與 l10n 檢查

今天收到網友寫信來問問題,有關 WordPress MU 中文化…呃!?MU!?嗯…其實我對 MU 沒什麼研究,不過之前後台有收到一篇文章《WordPress MU 安裝過程(二)–中文化》,把 WordPress 的正體中文檔案拿去套,也可以將就著用…XD

Anyway, 那是不太相關的前言。後來網友又問了一個關於「前台(也就是佈景主題)為什麼沒有跟著變成中文哩?」的問題。對 WordPress 新手來說,這是個很常提出的問題,有時候會以「為什麼我換了某佈景主題之後看不到中文?」之類的樣子出現。

「那來寫一篇有關這個問題的文好了」,心中這麼想著。

新手安裝完 WordPress 之後,預設的兩個佈景主題 classic 與 default 的訊息就已經是中文。因為它們所含的訊息,已包含在正體中文語系檔案中一起處理。

若使用者設定成自行安裝的佈景主題,則不一定會變成中文訊息。有沒有中文訊息可以看,這得看佈景主題的作者有沒有做所謂國際化(i18n – internationalization)的設計;並且,也需要提供在地化(l10n – localization)的語系檔案才行。

這裡提幾個檢查佈景主題是否有做 i18n 的小步驟:

  1. 檢查訊息字串是否都以翻譯函式包起來,如:__(“訊息字串”), _e(“訊息字串”) 等。
  2. 檢查佈景主題檔案內是否有使用 load_theme_textdomain() 這個函式。

如果第一點有做而第二點沒做,通常會出現絕大部分訊息字串仍然是英文,少部份是中文甚至沒有中文的結果。若兩點檢查都過,那接著就是檢查該佈景主題有沒有提供正體中文訊息的檔案。

這檢查步驟很簡單,只要在佈景主題的目錄下頭,看有沒有 zh_TW.mo 這個檔案即可。若是沒有該檔案,可以自己翻譯做一個,很簡單的~上次《Sandbox 1.6 語系檔》所對應的 Sandbox 佈景主題就做得挺完整。

後語:關於佈景主題與外掛開發的 i18n 可參考官方文件《I18n for WordPress Developers》。


Posted

in

by

Tags: