[Wordpress] Multi Language Theme
在裝 Wordpress 的同時,如果要中文化大家都會知道要在建立
-
$WP_HOME/wp-includes/languages
然後把 zh_TW.po 以及 zh_TW.mo 丟進去
接著在 wp-config.php 寫入
就會變成中文化的 Wordpress
可是很多人沒有想到,是否可以把這樣的語系也套用到 Theme 上
今天我就教大家如何簡單的把 Wordpress 2.1.3 的 Default Theme 的全中文化
進而透過這個例子把中文化 地區化的語系套用在你的其他 Theme
首先 編輯一下
-
$WP_HOME/wp-content/themes/default/index.php
加入
-
<?php load_theme_textdomain('theme_default'); ?>
這樣基本上,這個 Theme 就會讀取 zh_TW.mo 的語系資訊了
你的Theme 專用的 zh_TW.mo 要放在
-
$WP_HOME/wp-content/themes/default/zh_TW.mo
大概的 zh_TW.po 內容會是這樣 ( 在 Linux 上可以用 msgfmt zh_TW.po -o zh_TW.mo 去製作 mo file )
-
msgid ""
-
msgstr ""
-
"Project-Id-Version: 1.0\n"
-
"POT-Creation-Date: \n"
-
"PO-Revision-Date: 2007-04-20 19:06+0800\n"
-
"Last-Translator: Nickolas Chen (Chen, Ming-Te) <nickolas.c@gmail.com>\n"
-
"Language-Team: \n"
-
"MIME-Version: 1.0\n"
-
"Content-Type: text/plain; charset=utf-8\n"
-
"Content-Transfer-Encoding: 8bit\n"
-
"X-Poedit-Language: Chinese\n"
-
"X-Poedit-Country: TAIWAN\n"
-
"X-Poedit-SourceCharset: utf-8\n"
-
-
#: index.php:15
-
msgid "Read the rest of this entry »"
-
msgstr "繼續閱讀 »"
-
-
#: index.php:18
-
msgid "Edit"
-
msgstr "編輯"
-
-
#: sidebar.php:41
-
msgid "title_li=<h2>Pages</h2>"
-
msgstr "title_li=<h2>分頁</h2>"
-
-
#: sidebar.php:43
-
msgid "Archives"
-
msgstr "文章彙整"
-
-
#: sidebar.php:54
-
msgid "Meta"
-
msgstr "站務"
從上面的 po 內容
你大概可以知道 po mo 紀錄的東西
要先找到要本地化的程式碼的特定行的特定訊息才有辦法轉換
最後一步就是讓 Wordpress 讀到 mo po 以後
用它支援的 Function 去做到本地化
Wordpress 支援兩種指令去作訊息轉換
以下用範例解釋 (第一行都是沒有用指令, 第二行是用了指令後)
(1)
-
<?php edit_post_link('Edit', ''); ?>
-
<?php edit_post_link(__('Edit',theme_default), ''); ?>
(2)
-
<h2>Archives</h2>
-
<h2><?php _e('Archives', 'theme_default') ?></h2>
第一個例子用了到 Wordpress 的 Function __($msg,$domain)
第二個例子用了到 Wordpress 的 Function _e($msg,$domain)
$domain 是 load_theme_textdomain 的時候附加的 parameter
$msg 是 你要 Localization 的訊息
呼,
歷經
1. 讀取 mo file
2. mo file 的內容
3. 本地化指令值入
你是不是比較清楚了呢?