2014年11月29日 星期六

第八堂課:ezgo之開發、中文化及社群參與(11/14)

今天的講師是上次上課短暫出現的frank,是到目前為止唯一具有資工背景的人。延續上周的ezgo,今天要講的是ezgo的開發與中文化,會牽涉到比較多技術面的問題。

早期很多軟體、遊戲、程式來自國外,最初是以英文開發。近來台灣以後,像是自由軟體要推廣,會遇到一些困難,畢竟要讀全英文的東西很麻煩,也不是所有人的英文程度都嚇嚇叫,因此就會出現中文化。frank首先舉了幾款好久以前的遊戲,這遊戲我從來沒看過,不過好像有些人知道。這些遊戲都是美國人開發的,進到台灣後經過中文化,才會出現中文字幕。不過受限於當時的顯示技術,中文化的結果通常無法盡善盡美。再來,任何東西的在地化(進到台灣就是中文化)往往牽涉到很多東西的修改:訊息修改、自行處理、編碼問題……,還有表示法的問題:數字、年分、日期、金錢、度量衡等。為了賣到許多國家而常常需要修改,但是修改很麻煩,所以開始有簡單的機制發展出來。

簡單多國語言化概念:原始程式→1.將訊息抽出來編索引後存成一個檔→2.將該檔的內容翻譯成不同語言→3.修改訊息機制,參考翻譯後的檔,根據索引顯示相對應的訊息

        後來有了Linux中文延伸套件計畫(Chinese GNU/Linux ExtensionsCLE)。延伸,意思是修改程式內容,加入中文支援,重新編譯打包。一開始這CLE是由少數人發起,後來愈來愈多人加入,形成一個大型團隊。CLE團隊與原始程式的開發團隊合作,加入國際化的架構,而LinuxQtGnome等大型計劃都曾收過CLE開發團隊的修改。

接著是程式的國際化與在地化。國際化是將軟體與特定語言及地區脫鉤,軟體本身內部工程上的改變或修正。將程式中語言、文化、區域環境相關部分獨立出來,放在「區域環境資料庫(locale)」。在設計程式時不考慮對特定區域環境的支援細節,而是在執行時期才會決定。在地化是根據國際化定下來的架構,提供專屬於某個地區、文化的資料庫,填入該地區、文化的資料,供程式在執行期呈現。自由軟體在國際化時,利用對訊息的包裝、將訊息抽取出來集中在一個檔,取出來的原始訊息檔稱為*.pot,翻譯者只要把pot檔裡面的訊息翻成不同語言,每個語言存成一個pot檔。翻譯的過程有時會遇到困難,英文很些單字是一字多義,在不同地方會有不同意思。但是對沒有這麼聰明的電腦來說,如果沒有給予其他註解,假設某一個單字有三種意思,他應該會把該單字全翻成其中一種意思。Frank舉例早期的彈珠台中文化後,旁邊顯示左三顆,但看過原文"left three"後,應該要翻成剩餘三顆。此一問題凸顯出翻譯的盲點,因此需要加上註解,並有賴他人協助除錯。Frank說他曾經在翻security這個單字時遇到挑戰,這個單字當時出現在金融相關的文章裡,他特地查過之後,認為應該翻作「擔保品」。後來有人寄email告知說應該要翻作「證券」,frank才發現他還是翻錯了。這也凸顯英文在沒有任何註解的情況下,翻譯者有可能會誤判,導致翻錯。這也是後來在開發程式的時候,翻譯者往往會要求開發者盡量避免使用難以翻譯的字句。

那麼,要當一位翻譯者要有什麼樣的工具?需要有文字編輯器、簡單的英翻中概念、耐心和熱情。目前有比較方便的線上共筆翻譯平台,平台會將自由軟體裡面每項訊息一行行作排列,並顯示已翻譯和未翻譯的條目。這些平台蒐集而來的資料會自動回饋給上游開發者,使得原始的計畫在在地化時可以更加完善。不過,由Ubuntu母公司Canonical有限公司所架設的Launchpad網站,任何人都可以通過這個網站協助翻譯Ubuntu。但是經由此方式對非Ubuntu獨有組件的翻譯成果將不會自動反饋到上游,故不被推薦,這一點也是該平台最大的爭議。

再來frank講起自己開發ezgo的過程。ezgo的目標客群是沒有用過自由軟體的人,不過由於其自由軟體的精神獲得很多國中小老師的回響,目前在國中小推廣的情形也還不錯,同時目前最新版(ezgo 11)也獲得新北市政府教育局指定為國中小採購新電腦指定安裝的作業系統。不過,frank坦言很多學校電腦裡有裝,但不知道使用的情況為何。我個人認為能有這麼多學校安裝已是一個重要的里程碑,凡事先求有再求好。如果能吸引更多老師投入這個行列,相信會有更多小朋友會接觸到ezgo

ezgo的頭幾個版本都是委託公司製作,後來才由frankEric和一些人組成團隊自行開發,並將ezgo定位成客製化的distribution:有自己的品牌,卻不是一個獨立的distribution。由於希望能夠吸引許多不曾使用自由軟體的人使用,ezgo在設計界面時會偏向windows的風格,目的是讓用戶轉移時能不會出現轉移陣痛期。畢竟任何不愉快、不順暢的使用經驗會使用戶討厭,最終使用戶放棄使用。偏向windows介面的設計,我認為這個出發點很好,尤其現在win8的反彈聲浪很高,這樣的設計也許能增加用戶。過去每個版本都採用不同的linux系統作為基底,但面臨版本更新的時候,只能以手動的方式(Dirty hack)處理。然而這種方式卻使得團隊每年都要重新來過,相當麻煩。現在都盡量自動化,並遵循Debian的規範。之後提及許多ezgo打包的相關技術,雖然只是簡單說明,但我才疏學淺,打包技術的部分聽不懂,所以不在此論述。

目前新版本ezgo 12即將發布,由重大變革。frank說之前有一些使用者和老師曾反映有些功能很好,應該保留;也有人認為某些功能不好,應該刪除。還有老師認為ezgo裡面不該有遊戲,怕學生上課玩;但也有老師認為那些遊戲有意義,可以幫助學生學習和增加樂趣。於是frank決定把ezgo畫分成三個版本,一是標準版,基本配備都有,但一些進階功能不會有安裝,避免ezgo太過肥大。二是完整版,所有的東西通通都會安裝。三是基本版,讓想要自己修改的人可以自由發揮。另外我的同學們,也就是成大資訊系的學生(也有些人只是修自由軟體這門課,但非資訊系學生),有部分人參與ezgo 12部分的開發,希望大家可以拭目以待。ezgo 12將在今年年底發布,連我自己也很期待啊。

沒有留言:

張貼留言