The Old Blog Archive (Traditional Chinese), 2004-2009

針對 MediaWiki 中文繁簡轉換所做的修正

近來為了在重整openvanilla.org wiki的內容,也同時順便survey了一下通行的幾套wiki系統。MediaWikiWikipedia的核心系統,最大的好處是具有相當成熟的多語系支援,包括了多語系的介面,以及許多配合多語系網站所需的功能(例如:在頁面左側,顯示這篇文章還有哪幾種語言的版本)。

我認為openvanilla.org至少必須要有三種語言版本:繁體中文、簡體中文,以及英文。事實上繁體中文又可分為台灣繁體中文及香港繁體中文,簡體中文以中國大陸為主,新加坡也有一些特殊用語。但以openvanilla.org的詞彙使用範圍,有繁體中文及簡體中文,應該就相當合用,英文版當然是為了非中文使用者的需要(例如不會講中文的藏文使用者、希望拿OpenVanilla拿協助歐語輸入的西方使用者,或是看英文較快的中文使用者等等)。延伸來看,做為一個從中文世界起源、而服務性質不限於中文使用者(也許姑且套用中國大陸的構句法,叫「具有面向世界的服務性質」),這樣一個網站,的確應該要至少有中文及英文兩種版本,而中文如果能支援繁體及簡體,自然是更貼心的。

MediaWiki的優點及問題

如果我們暫且忽略Wikipedia過去在中文議題上採取的官方立場[1],純粹就MediaWiki這套軟體而論,有很多技術上的設計的確有可取之處,例如自動詞彙轉換可以節省不少文章寫作及編輯校對的力氣。

但是,如果直接拿MediaWiki的正式安裝套件來用,就會發現,簡繁轉換功能,包括了在版面的導覽列上顯示「繁體版」與「簡體版」兩個tab,必須要在語系設為「中文」(zh)的情形下才能使用。而這裡的「中文」,hélas! 指的是「簡體中文」。再仔細往裡面的程式碼探,才更可以發現在物件組織上,程式也都是繞著簡體中文組織的,甚至包括內文以及搜尋的內部工作碼,也都是先轉成簡體中文進行的。

就我來看,這是個「程式碼反應組織意識型態」的案例研究。

實際上的需要

回到務實層面,openvanilla.org的服務對象,最大宗者仍是繁體中文使用者,就比例原則而論,預設(而非「默認」或「缺省」)的語系設定及工作語言,包括內部資料編碼及搜尋,自然應該以繁體中文為主。而,就組織層面而論,MediaWiki的多語網站,是以「一個主要工作語言建一個網站」為原則來鋪設的。就此兩者,我們應該建立的是一個「具有繁簡轉換功能、但以繁體中文為主的中文網站」以及一個英文網站。就此目標來說,MediaWiki是令人稍微傷了點心。

當然幸好多拜MediaWiki有開放的程式碼,我們在此針對MediaWiki的繁體中文語系物件(定義於LanguageZh_tw.php)做修正,依循簡體版的作法,開啟語言轉換功能,並且將預設的內部工作語言改為繁體中文。為了方便,這次的修正暫時省去了香港與新加坡的體例(variants)。如果使用者選用了簡體中文作為預設顯示介面及工作介面,簡體中文也一樣具有繁簡轉換功能,這點是沒有改變的。

我們做的修正

我們順便修正了MediaWiki繁體中文語系檔中,一些與台灣使用習慣差異過大的詞,例如「登錄、退出」改為「登入(或註冊)、登出」,「文件、文檔」一律改為「檔案」,「電郵」展開為「電子郵件」等等。更進一步的修正有賴大家共同雞蛋裡挑骨,至於程式碼的部份則也許有必要再多修正(主要是更改物件繼承及原始碼相依賴結構)──原先的程式碼中,LanguageZh.php(繼承自LanguageZh_cn.php)將LanguageZh_tw.php視為下屬(subordinate)、被引入(include)的對象,我們這版修正中則讓LanguageZh_tw.php引入LanguageZh.php,使得LanguageZh_tw.php成為繼承結構的終端點。

怎麼放到我家的MediaWiki裡?

以上所提及的種種修正,都可以從從這裡取得。安裝方法是:

  1. 將該.tgz檔解開(”untar”)
  2. 參考LangugageZh_tw.php中,所有標有”MW-SPECIFIC”字樣的句子,將之修改以符合合各別需要;其中有一些「硬塞」(hard-coded)進入、與Wikipedia本身相關的詞句──一共有四處:首頁名(有些人也許希望第一頁文章名稱不要叫「首頁」)、副標(「自由的百科全書」)、著作權警示(目前硬寫進入的是GNU文件授權,這部份應比照英文版,改從LocalSettings.php讀目前授權)以及更動記錄(”recentchangestext”這個key指涉的字串)的政策性文字。
  3. 將這幾個.php檔蓋寫至MediaWiki的languages/目錄下(你可能會想要先做一份備份)。

以上的修正檔會不定時更新。我們已在諸如OpenFoundry開設計劃網頁,以來公開發佈這份修正檔(可用svn取得所有修正檔原始碼)。我們也針對詞彙的部份,到MediaWiki的Bugzilla回報系統裡,做了初步的修正建議

至於新版的openvanilla.org,將在裝潢階段告一段落後開張。:)

致謝

本地化工作(localization; l10n)沒有許多眼珠盯著,就不可能有所做為。感謝以下朋友:pcchen (for MediaWiki), hlb (for terms and testing), Jedi (terms), mjhsieh (for his hawk eyes)。

註解

  1. 我不曾參與過所有跟中文Wikipedia現行政策相關的形塑過程與討論。為了避免有簡繁兩種版本(或甚至是台港星中四種版本)而使用各種轉換及城府深厚(sophisticated)的轉換標記,好讓所有文章活在同一個中文Wikipedia的名稱下。為了節省重覆發明輪子而在制度及技術上做許多扳扭(contortion),所費的努力值得敬重。但是是否有必要讓中文變成這麼大一把意義的涵蓋傘,我認為應該仍要有討論及變化的空間。

2 Responses to “針對 MediaWiki 中文繁簡轉換所做的修正”

  1. on 15 Jan 2006 at 10:48martin

    程式的编写会受到自身专业背景,使用者对象,要解决的问题等方面的诸多限制,幸而您所具有多语言、跨平台、多视角的专业和技术素养,因而您针对OV做的这些修改工作在实践上就可能具有某种创新的性质。正如OV中采用的特有的选字方法一样(就我个人而言,比较认同您的方法。),我以为,您的改作之中蕴含的理念,吃值得很多中文信息处理的人士效法的。我只是一个普通的用户,不是程式设计者,但是还是很高兴能看到有这样的通关全局的理念的存在的。愚以为,即使大宗用户是简体,以正体中文作为内部工作语言而兼具全球视野,也是一个值得努力的方向—-大陆所称的「具有面向世界的服務性質」,只是一句空话,其实并没有任何切实的行动的。语言而意识形态化,实在是作茧自缚。

    又:

    OV,openvanilla,里面的选字方法和我使用过的很多输入法不同,我个人非常欣赏,只可惜我还没有掌握具体的操作方法。自由软件里面很多很个人化的程序,vi,emacs,乃至linux里都有这种个人习惯的影子。这可以说也是“You can change the world”的一个例子吧。

    (发现我的评论没有显示出来,于是重新贴一次.)

  2. [...] http://lukhnos.org/blog/zh/archives/260 [...]