2014年11月14日 星期五

[課堂演講]Ezgo之開發、中文化及社群參與

[課堂演講]ezgo之開發、中文化及社群參與


日期:2014/11/14
講者:Franklin


Outline

  • 自由軟體的國際化和在地化
    • 要推廣需要中文化
  • Ezgo打包技術初窺探

About Frank

  • 大一開始玩Linux
  • 研究所意頭栽入Linux與自由軟體
  • 曾經是上市公司RD(Research & Development)

國際化與在地化

  • 過去的軟體遊戲程式要能顯示中文必須處理很多事情
    • 訊息的修改
    • 字型的處理
    • 編碼的問題
→所以過去的軟體或遊戲,中文版的推出是一件大事

  • 除了訊息之外,還可能有什麼問題?
    • 數字的表示法: 1.000 or 1,000?
      • 德國(1000/1)
      • 台灣(1/1000)
    • 年份的表示法: 西元年,民國年、泰曆、日本曆
    • 日期的表示法: mm/dd/yy    yyyy/mm/dd
    • 金錢的表示法
    • 度量衡系統:公制、英制

  • 如果要賣一套軟體給不同國家,非得這麼麻煩?
    • 每個國家適用的軟體,訊息都要改一遍再重新編譯
      • 字形怎麼顯示?
      • 數字呢?日期呢?
→開始有些簡單的機制發展出來

  • 簡單的多國語言化概念



Linux 上的中文化始祖 - CLE

  • Chinese Linux Extwnsion -Linux中文延伸套件計畫
  • 「延伸」→ 修改程式內容,加入中文支援,重新編譯打包
  • 類似十幾年前的ezgo

  • CLE的開發團隊知道,不能光是修改打包 → 因此積極與原始程式的開發團隊合作,加入國際化的架構
  • 包括Linux、glibc、Qt 、GTK+、 KDE、 Gnome等大型計劃都曾收過CLE開發團隊的修改
→因此奠定了現在Linux的基礎

國際化:Internationalization


維基百科定義: 在設計軟體,將軟體特定語言地區脫鉤的過程。當軟體被移植到不同的語言及地區時,軟體本身不用做內部工程上的改變或修正。在地化則是指當移植軟體時,加上與特定區域設定有關的資訊和翻譯檔案的過程

簡單的說:將程式中跟語言文化區域環境相關的部分獨立出來,放在「區域環境資料庫」(locale)。在執行時期才依使用者所選擇的區域環境選取

在地化:Localization,  l10n

根據國際化所定下來的架構,建立專屬於某個地區、文化的資料庫,填入該地區文化的資料工程是在執行期呈現

  • 在地化的內容:
    • 語言、文字翻譯
    • 特定語言支援(左至右、右至左)
    • 符號、數字、度量衡系統
    • 排序方法
→ 後面幾項都只要做一次,放在系統內。l10n多半指翻譯

自由軟體的國際化-Gettext


  • Sun Microsystems所開發,後來GNU project 在1995年釋出了GNU Gettext
  • 利用對訊息的包裝,將訊息抽取出來集中在一個檔
    • 取出來的原始訊息檔稱為 pot(template)檔
    • 拿pot檔把裡面的訊息翻譯成不同的語言,每個語言存成一個po檔
    • po檔需要再編譯一次,開發者將po檔案編索引成mo檔

PO檔裡面分為:檔頭與條目兩部分

  • 檔頭
存放的是這個PO檔與其相對應的POT檔的相關資訊,包括產生時間、最後翻譯者等等,還有一個很重要的資訊"複數形的定義"(plural-forms)
  • 條目
    • 旗標Flag
    • 註解comment(重要!!)
      • 區分相同訊息但不同意義
      • Ex: (left: 左邊/剩下)

自由軟體中文化需要哪些工具?

  • 文字編輯器
  • 簡單的英翻中概念
  • 耐心、恆心、熱忱

翻譯工具介紹

  • 任何文字編譯器
  • Poedit、Lokalize軟體
    • 翻譯資料庫
  • Launchpad、pootle、transifex、tryneeds等線上共筆翻譯平台
    • 提交上游的問題

Ezgo打包技術初窺探


What is ezgo? 為什麼有這麼多人願意投入開發?

從推廣面來說

  • 目標客群:沒有用過自由軟體的人
  • 特色思考

從技術面來說

  • 客製化的distribution
    • 有自己的品牌,但不是一個獨立的distribution
  • 過去的做法,手動Dirty hack!
    • 手動調整選單,再把家目錄裡的設定存起來
    • 找到桌布檔案,做一個新的,再用原來的檔名覆蓋
  • Dirty hack的問題?
    • 改過的東西太過零散,容易忘東忘西
    • 版本一多不易管理
    • 不符合Debian規範,無法上傳
    • 每年都要重新來過
  • 目前的做法
    • 盡可能遵循標準機制,並進行自動化:例如選單
    • 盡可能採用外加設定檔的方式,不覆蓋現有的檔案
    • 做成package:deb, rpm...

Debian-ezgo

  • Debian Pure Blends
  • 遵循Debian規範,將常用重複的檔案與設定等等包裝成deb檔
  • 目前包括
    • ezgo-artwork, ezgo,-kde, ezgo-xfce. ...etc
    • ezgo-menu
    • ezgo-education,...etc

Ezgo調校重點

  • 選單
  • 桌布
    • 每一種桌面系統都有不同的方式抓取桌布
    • 除了桌布之外還有哪些?
      • 開機Grub選單背景
      • 開關機過程動畫
      • 登入選單背景畫面
  • 檔案系統
    • iso檔解開在包回去的技術
  • 軟體
  • 使用者體驗
    • 軟體的預設設定/etc/skel
    • 快捷鍵設定:依據不同的桌面系統

Ezgo調校過程


(Lab) 12/5 歡迎參與測試 Ezgo


圖片來源:將演講內容以小畫家簡易描繪

沒有留言:

張貼留言