下拉重新整理

2002 年,我一個人把一套德國電商軟體翻成繁體中文

1,745 字 5 分鐘閱讀 15 次閱讀

上一篇講的是二十二年後我怎麼把這段歷史找回來。這一篇往回走,走到最前面那一步。

順序很重要,因為我後來發現大部分人都記反了。不是先有社群、社群做出中文版。是我先把它翻完,翻完之後才有站,有站之後才有人。

那套軟體是德國人寫的

osCommerce,Open Source e-Commerce,作者是德國人 Harald Ponce de Leon。

PHP 寫的,配 Apache 跟 MySQL,原始碼全部給你,免費。在 2002 年這件事本身就很不得了。當年一套商用的購物車系統開價可以到六位數,而這一套你下載下來就能用,想改哪裡改哪裡。

我看到的時候第一個念頭不是「這個可以拿來賣」,是「這個東西台灣人用不了」。

介面全是英文。但那還不是最麻煩的。

那時候的工具長什麼樣

先講環境,不然後面的事會顯得莫名其妙。

2002 年沒有 GitHub。GitHub 是 2008 年才有的,中間差了六年。沒有 pull request,沒有 issue,沒有 CI,沒有人幫你跑測試。

所以流程是這樣:打開編輯器,改檔案,存檔,打開 FTP 軟體,把檔案拉上去,然後開瀏覽器按重新整理,看有沒有壞掉。壞掉就再拉一次。

要備份的話,就是把整個資料夾複製一份,後面加個日期。

要跟別人討論,就是論壇發文,或者 email。回覆可能三天後才來。

我知道現在講起來像在講什麼上古時代,但這就是當年一個人做開源的全部工具。

翻字是最簡單的那一段

osCommerce 這套軟體在這件事上其實做得不錯。它把介面上的字串抽出來放在語系檔裡,一堆 define(),一行一個。要做別的語言,理論上就是把那些檔案複製一份,把英文換成中文。

理論上。

真正做下去之後我才知道,語系檔只是最外面那一層。它管的是「按鈕上面寫什麼字」,管不到底下所有預設台灣不存在的東西。

難的是編碼,而且要做兩套

台灣的中文編碼是什麼狀況,2002 年跟現在其實沒有差多少,都是兩種並存:Big5 跟 UTF-8。

差別在比例。從國外來的網頁大部分是 UTF-8,國內因為作業系統的關係,普遍還是 Big5。大家還沒有養成用 UTF-8 的習慣。

所以中文化不是把 Big5 換成 UTF-8 就結束,是兩套語系檔都要做。一套 Big5 版、一套 UTF-8 版,讓人照自己的環境去挑。

這兩套並存了很久。後來我們出的第二版那本書,隨書光碟上印的是「osCommerce ms2 update051113 utf-8 繁體中文版」,到那個時候 UTF-8 才變成拿得出來講的那一版。

這件事今天聽起來很蠢,但當年沒有別的選擇。只出 UTF-8 版,一半的人打開來是亂碼;只出 Big5 版,另一半的人也是亂碼。兩套都出,代價就是兩套都要改、兩套都要測,上游一改版兩套都要跟。

Big5 本身也會咬人。有些常用字它沒有,人家的名字打不出來要靠造字。同一個網頁裡程式碼是 ASCII、資料是 Big5、資料庫又有自己的一套設定,中間有一段沒對上,畫面就是一片問號。而且它會壞在你看不到的地方:表單送出去的時候壞、寫進資料庫的時候壞、搜尋跟排序的時候壞。每一個都要單獨追。

更難的是台灣根本不在裡面

這才是我後來覺得最有意思的部分。

那套軟體是給美國跟歐洲用的,所以它預設的世界長這樣:地址有 state、有 zip code;付款是信用卡;運費按重量算,接的是 UPS 跟 FedEx;稅是 sales tax。

台灣沒有一項對得上。我們的地址是縣市、鄉鎮、路、段、巷、弄、號、樓,沒有 state,也沒有 zip code。

而物流跟金流這兩塊,等於要整個重寫。

所以中文化之外,我另外花了不少時間在做在地化的模組。物流那邊接的是中華郵政、宅急便、宅配通;金流那邊一樣有郵政,再來是當年幾家做線上收款的,綠界是其中一個。

這件事後來留下了痕跡。我手上還有 2003 年出的那本書,封面上列著隨書光碟的內容:osCommerce 2.2 MS2 繁體中文完整安裝版、AppServ 2.1.0、FileZilla 2.1.9、付款模組、運送模組、本書範例程式。

付款模組跟運送模組會被單獨拉出來印在封面上,就是因為它們不是原版有的東西。

這些原版裡一個都沒有,也不可能有。UPS 跟 FedEx 對台灣的賣家沒有意義,sales tax 也不是我們的稅制。要讓一個賣茶葉的人真的收得到錢、寄得出貨,就得有人把這幾個模組一個一個寫出來。

所以真正的工作不是翻譯,是把一套建立在別人生活方式上的軟體,改成建立在我們的生活方式上。

這就是 localization 跟 translation 的差別。 前者是把軟體搬到另一個地方去住,後者只是換一套衣服。

二十四年後再看這件事

今天做同樣的事,工具好太多了。語系檔丟進版本控制,有人漏翻可以開 pull request 補,CI 會幫你檢查有沒有字串沒對到,真的懶的話就叫 AI 一次把整份翻完。翻字這一段幾乎已經不是問題了。

但你把今天的工具全部拿掉一次,會發現剩下的難題跟 2002 年一模一樣。

地址格式還是要有人去想。金流還是要一家一家接。什麼日期格式、什麼幣別、稅怎麼算、發票怎麼開,這些沒有一項是翻譯工具能幫你的。

能自動化的那一半一直在變好,不能自動化的那一半二十四年來沒有動過。

我現在在醫院做 FHIR 的台灣落地,做的其實是同一件事。國際標準寫得再好,它也不知道台灣的健保怎麼跑、醫令代碼長什麼樣。那些東西還是要有人一個一個去對。

翻完之後

檔案改完了,網站沒有。

東西放在我自己的電腦裡沒有意義,總要有個地方讓人下載、讓人問問題、讓人回報哪裡怪怪的。

那時候我一個人做不出那個地方,所以我去找了一個人。

下一篇講這個。