轉換 WordPress 資料為萬國碼

當初急於把我的 blog 軟件由 Serendipity 轉用 WordPress,在 MySQL 上建立資料庫時卻沒有理會文字編碼,令到 WordPress 上的中文支援有些少問題。

大約兩年前,我已打算把這個 WordPress 的資料,由 Latin 轉換為 Unicode,但多次欲嘗試時,因為過程較復雜而沒完成到。直至約半年前,才把這項工作完成了。而 screenshot儲存後,到今天才把這事和圖片貼上 blog上。

utf-wordpress01.jpg

(上圖 – 在轉換前後透過 phpmyadmin 檢視中文資料)

這個問題的解決方案最煩人的是,要先把各資料表(table)內有關 VARCHAR 及多種不同文字類型的欄位,把欄位類型改為 BLOB 二元碼類型後,才可以順利地把各資料表及欄位轉換為萬國碼。在轉換文字編碼後,還要把各欄位的類型還完才完成。

在網上有一個 script,可以協助我做以上煩悶的工作,但是 script 不能完全把所有資料表完成轉換,仍需要人手檢查和修正,幸好最好也完成了。

utf-wordpress02.jpg

(上圖 – 當 WordPress 以萬國碼來處理資料時,文字編碼轉換前後的分別)

能否利用軟件工具來加強軟件翻譯效率呢?

一直以來,在香港缺乏人手協助翻譯軟件界面及文件,希望不只是由 Abel 來做吧,我在想有沒有方法可以加強軟件翻譯效率呢?

針對軟件界面翻譯工作,我在想以下是否適合呢:

  1. 建立網上中央字庫來方便以程式來翻譯及統一該語系的翻譯;
  2. 建立半自動網上/GUI 翻譯軟件,軟件可向翻譯者提供翻譯意見;
  3. 有了 1 和 2 後,當在初步完成翻譯時,檢查翻譯是否恰當;

以軟件來協助翻譯:

  • 字庫只紀錄一至三個英文字相應的意思;
  • 一個英文字可以代表多個意思;

統計 po 檔內相同字數的字串數目:

$ awk ‘/^msgid/ {  sub(/^msgid \”/,””); sub(/\”$/,””); print NF }’ zh_HK.po | sort | uniq -c

$ grep “^msgid ” zh_HK.po | cut -f 2- -d ‘ ‘ | sed -e “s/^\”//” -e “s/\”$//” | awk ‘{ print NF }’ | sort | uniq -c

以下是 wordpress 2.2 zh_HK po 檔的結果,不過應該找一大堆 zh_HK .po 來研究。

189 0
275 1
40 10
18 11
7 12
5 13
3 14
344 2
234 3
107 4
64 5
68 6
49 7
39 8
39 9

顯示特定字數的字串:

$ grep “^msgid ” zh_HK.po | cut -f 2- -d ‘ ‘ | sed -e “s/^\”//” -e “s/\”$//” | awk ‘NF == 2 { print $0 }’ | sort

更換 WordPress theme

早幾天我終於把起心機,把這個 Blog 所使用軟件 wordpress 的主題版面(theme)換掉了。由原先所洗用的預設版面,轉了 wordpress 網站上的其中一個名為 pool 的 featured theme 。

在安裝了後,我在簡單地修改 theme 的程式碼來改變一些顯示訊息,例如我不想希望別人知道我在當日何時何刻才把文章貼上。:p 所以我尋找到以下 wordpress 網頁,方便知道 wordpress 部份 API 資料,以便修改新 theme。

http://codex.wordpress.org/Template_Tags

另外,維尼說我的 Blog 內不少文章的回應數目數錯了,我估可能是某一兩次刪除 spam 時,資料庫更新資料時發生一些問題。我順手用 SQL 重新計算每篇文章的回應數目,再更正資料。