Mark's Place

A place for Mark's murmuring, blah, blah, blah, ...

Mark's Place
Watch Timeline

在 UTF8 編碼下的網頁簡繁互轉

Mark Wu 發表於 2006/10/27 02:07 · 靜態連結網址

最近在考慮把 lifetype.org.cn 透過 mod_rewrite 的方式,把網址轉換到 lifetype.org.tw,這樣可以讓更多的大陸朋友能夠來認識 LifeType。但是,首先要解決的問題是,如何做到線上簡繁互換,讓大陸網友能夠使用他們熟悉的簡體環境。

目前有幾個解決的方式:

  • 透過瀏覽器的外掛程式幫忙,做到及時的簡繁互換。例如,IE 下的 Alibabar 與 Firefox 下的新同文堂
  • 透過 Server Side Script 如 PHP,寫一支簡繁轉換的 Gateway,例如在 Jerry 網頁所說的方式。
  • 透過 Client Side Script 如 JavaScript 來作線上轉換,並且透過 Cookie 紀錄是否需要自動轉換成繁體或簡體。如 Joomla AutoIt! 這裡所說的方式。

第一個方式需要使用者自行安裝這些外掛程式,其實不是很方便。第二個方式要改的還不少,而且沒辦法直接使用到 blog, wiki 與 forum 上面。所以決定採用第三種方式,因為唯一的修改就是改模版。

原本很高興以為下載之後就能用,結果在繁體的環境下好像有 Bug。所以把整個程式Debug 並且 Refactoring 了一下,應該可以用在繁體了。有興趣的人請依照下列方式安裝:

<a id="translateLink">簡體</a>

  • 然後,網頁的 </body> 標籤前面加上

<script type="text/javascript" src="http://your-site/tw_cn.js"></script>
<script type="text/javascript">
var defaultEncoding = 1;
var translateDelay = 0;
var cookieDomain = "http://your-site";
var msgToTraditionalChinese = "繁體";
var msgToSimplifiedChinese = "简体";
var translateButtonId = "translateLink";
translateInitilization();
</Script>

共有五個參數可以設定:

  • defaultEncoding:網頁預設語系:1 是繁體中文,2是簡體中文。預設值為 1。
  • translateDelay:延遲翻譯的時間:如果你不是放在 </body> 之前,請設定延遲翻譯時間。如 100 代表 100ms。預設值為 0。
  • cookieDomain:Cookie 網址。這個請務必要設定,沒有預設值。
  • msgToTraditionalChinese:切換至繁體中文的訊息。預設值為 "繁體"。
  • msgToSimplifiedChinese:切換至簡體中文的訊息。預設值為 "簡體"。
  • translateButtonId:簡繁互換連結的 Id。預設值為 "translateLink"。

這樣應該就可以了。不過,要是使用者的瀏覽器不支援 Javascript,那就沒輒了。

PS. 這支程式看起來流傳已久,所以不知道原始作者的釋出版權為何。所以我也沒有加上版權標示。

真實引用網址:

http://blog.markplace.net/trackback.php?id=150

迴響 (34) · 引用 (2) 文章分類: 生活形態?LifeType?

迴響 ↓

«上一篇   1 2
  • 網頁簡繁互轉
    Angel  發表於 29/11/2007, 22:08

    我在大陸購買網頁軟體,但ftp上傳后都是簡體字,可是想把網站改成繁體字,不知如何修改呢?

  • 這 ...
    Mark  發表於 30/11/2007, 12:39

    我就不知道了!

  • 回覆: 在 UTF8 編碼下的網頁簡繁互轉
    KuenWei  發表於 25/01/2008, 02:46

    感謝,我也弄好了,真的很開心可以得到這麼有用的資訊。

  • 受用無窮
    Lance  發表於 31/01/2008, 09:04

    本以為繁簡切換需要將整個網頁做翻譯動作!!還好還沒執行,就看到你這篇文章!真的是太幸運了!!

  • Question
    eddie  發表於 06/03/2008, 16:35

    我不太懂網頁設計,我的網頁用Joomla, 請問"在你希望放上『簡繁互轉』的連結的地方加上 -
    簡體
    是什麼意思 ?要加在那個文件? 感謝 !

  • markwu

    To eddie
    markwu  發表於 07/03/2008, 08:40

    我建議你就直接把 『簡繁互轉的連結』放在 index.php 的 [body]與[/body]的 tag 內的任何地方

    看看顯示出來的效果,然後再作調整。

  • 謝謝
    eddie  發表於 07/03/2008, 21:39

    謝謝 .
    把 『簡繁互轉的連結』放在 index.php 的 [/boby]前,
    效果很好.

  • To markwu
     發表於 06/05/2008, 08:09

    例如像站內搜尋的input裡面的字無法被此繁簡轉換的功能所更改
    請問有無其他辦法呢??
    感謝分享那麼有用的功能^^

  • bcdej
    bcdej  發表於 12/06/2008, 23:14

    分析了半天,终于找到了FireFox下有Flash(包括用JS导入Flash)的页面出现too much recursion错误的解决办法。

    在translateBody()函数的var obj=objs.item(i)那一行下边加一行if( obj.tagName == "OBJECT" || obj.tagName == "SCRIPT" || obj.tagName == "EMBED" )continue;

    这样就达到了对OBJECT、SCRIPT、EMBED标签编译的屏蔽,从而顺利完成编译。

    比较郁闷的是Safari下边编译还是出错,暂时没有找到问题在哪。

  • 原来Safari下是解决了
    bcdej  發表於 12/06/2008, 23:20

    我晕,原来Safari下是解决了的,我没有注意……

  • 整合新同文堂字詞庫方法
    tka  發表於 25/10/2008, 03:44

    您好 拜讀您的大作後
    小弟將新同文堂的字詞庫與這篇文章的程式做了點修改與整合
    讓程式可以同時處理不同編碼的網頁,並新同文堂中的所提供字詞庫對應表
    細節請參考http://www.tkalu.com/blog/2008/10/25/41/

  • Firefox 轉不過來
    Jason  發表於 08/06/2009, 07:37

    在 Firefox 上轉不過來

  • 怎么突然连接不了?
    Edward  發表於 08/07/2009, 07:28

    http://www.chinawealthplanning.com/index.php?lang=tc

    请问mark
    我的站点用了您的方法, 之前用的好好的,今天就突然连接不了了,请问是怎么解决呢,麻烦了。

  • firefox 的設為首頁,收藏本網
    leong  發表於 27/01/2010, 09:53

    加了後,firefox 的設為首頁和收藏本網功能便失效,
    IE無問題

«上一篇   1 2