2006年11月13日星期一

UTF-8 Traditional-Simplified Chinese conversion (cont.) - 繁簡互轉 (續)

上次 提到利用 mod_rewrite 搭配 mod_proxy 的設定,在完全不碰原網站的程式和資料的情況下,達到 server-side 的繁簡互轉。這樣的設定雖然簡便,但是有不小的缺點。

假設繁體中文原網站 A1,簡體中文分身網站 A2,轉碼程式放在 B。整個資料傳遞的流程會變成:

  1. 使用者對網站 A2 發出查詢

  2. 網站 A2 將此查詢用 mod_proxy 轉給一支放在網站 B 的轉碼程式

  3. 網站 B 收到查詢以後,模擬原使用者的行為,對網站 A1 發出一個相同的查詢,拿到原本使用者會取得的頁面資料

  4. 此轉碼程式將頁面的繁體中文轉為簡體中文

  5. 把轉碼的結果傳回給網站 A2

  6. 網站 A2 把頁面傳回給使用者


因此原本的一個查詢,實際上將產生兩個(轉碼程式放在不同網站)甚至三個(轉碼程式放在同一網站)的資料查詢量,另外由於 cookie 沒辦法傳遞到轉碼程式發出的查詢中,所以顯示的資料可能有誤。

因此,今天嘗試了另一種解法:使用 mod_filter。它可以在整個流程的最後,等所有的資料都處理完,準備要把結果傳回給使用者之前,呼叫另一支程式來處理即將要輸出的結果。因此轉碼的動作可以在一個查詢裡面完成。至於原本的轉碼程式,只要稍做修改,把原有吃 CGI 的參數,改成吃 STDIN 即可。

因此現在的 Leeym's Blog 簡體中文版 就是套用這個系統啦~~~

0 意見: