WordPress Gettext – 佈景主題中文化
WordPress Gettext 透過這個 filter hook 功能,可以幫助我們用比較簡單的方式,幫自己的佈景主題中文化。
很多朋友最近因為黑色星期五的採購日,採買了很多付費的佈景主題,這些功能強大的佈景主題,因為是國外開發商開發的佈景主題,對於中文化的支援可以說是幾乎沒有,特別是很受歡迎的 Avada 也是如此。雖然佈景主題附上了語言檔,讓大家可以透過 Poedit 軟體或是在 WordPress 後台安裝外掛程式來幫我們的網站中文化,相對來說整個建置的過程耗費的時間較大。所以今天想要跟大家來分享一下,透過簡單的過濾條件,幫我們找到字串翻譯成中文,符合網站的簡單需求,中文化建置的時間可以縮短到非常短。
WordPress Gettext
- 今天的文章示範,將以 Avada 佈景主題來做示範,透過編輯子佈景主題資料夾下的 functions.php 檔案,來幫助我們做簡單的佈景主題中文化。
- 打開 functions.php 檔案,填入以下語法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
add_filter( 'gettext', 'theme_change_comment_field_names', 20, 3 ); /** * Change comment form default field names. * * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext */ function theme_change_comment_field_names( $translated_text, $text, $domain ) { if ( is_singular() ) { switch ( $translated_text ) { case 'Previous' : $translated_text = __( '上一頁', 'Avada' ); break; case 'Next' : $translated_text = __( '下一頁', 'Avada' ); break; case 'About the Author: %s' : $translated_text = __( '關於作者: %s', 'Avada' ); break; case 'Related Posts' : $translated_text = __( '相關文章', 'Avada' ); break; case 'Leave A Comment' : $translated_text = __( '發表留言', 'Avada' ); break; case 'Post Comment' : $translated_text = __( '立即傳送', 'Avada' ); break; } } return $translated_text; } |
- 上述中文化語法是根據 WordPress 官網說明文件修改而來,theme_text_domain 替換成今天示範的 Avada,同理這樣的語法也可以適用在其他佈景主題或是外掛程式上,前提是這些佈景主題或是外掛程式需要有語言檔案的建立。
- 另外,對於這次的修改我個人覺得,對於只想要小部分達到中文化的網站來說,這是很簡單又容易維護的建置方法,雖然官網說明文件第一段話就提醒,會有效能上的顧慮,不過實測時小部分修改對於效能上完全沒有影響,至於如果要大量的修改中文化,還是建議依循編輯 PO 檔案中文化的方式來進行。
- 最後,修改前與修改後的差異,可以透過下面兩張圖片清楚的看到中文化前後的差別。
結論
網站的建置過程,如何找到最適合自己網站的方法,是網站設計人員的重要課題,很高興的是 WordPress 官網的說明文件非常詳細,很多幫助我們的使用技巧就在這些文件裡面,花點時間詳細閱讀參考,一定會有非常好的收穫的,建議新手朋友也跟我一樣,常常去逛官網的說明文件。
太感謝這篇文章了,找了好久終於找到解答:)
不客氣,很高興文章可以幫到忙。
那再請問一下留言欄裡面要請讀者填寫的資訊,例如「Comment…」、「Name(required)」、「E-mail(required)」及「Website」這些資訊,也有辦法變更成中文嗎?謝謝您~
可以。留言欄有些是佈景主題另外編寫的,就需要自己把它中文化。