2014年11月13日 星期四

軟體的國際化與在地化

自由軟體開發與社群發展

講者:FrankLin


INDEX Topic 1.自由軟體的國際化與在地化
Topic 2.Ezgo打包的技術初窺探

講者介紹:
Franklin,在社群中被稱為馬哥,大一開始玩Linux,但真正栽入Linux與OOS是在念研究所時。出社會後都在做RD,現在則是以OSS為業的浪人。
2006年起,擔任KDE中文化團隊的協調人。

Topic 1.自由軟體的國際化與在地化


 Ezgo是推廣自由軟體用的一個系統,既然要推廣,中文化就是個相當重要的部分。
  • 國際化與在地化
過去的軟體,光是要能顯示中文,就要處理很多事情,如訊息的顯示、字型(px上的設定,同時涉及了自行的解析度)、編碼問題,使得在過去中文版的推出,即是一件大事。

而除了訊息,還可能會涉及當地的觀念,像是:
  • 數字表示法
例如在歐洲大多數的國家,1.000是一千,1,000才代表1,假設今天有一個德國的會計軟體,台灣中文化就得做內部的修改。
  • 年份的表示法
  • 日期的表示法
  • 金錢的表示法
  • 度量衡系統
這些都是在軟體在地化時要做的處理。

而現在,為了在同款軟體賣給不同國家時不大量修改,軟體公司提出簡單多國語言化概念。

原始程式→將訊息抽取出來編索引,存成一個檔案→將該檔的內容翻成不同語言
(原始程式在設計時就該有能檢視索引的機制)
因為訊息已經抽出來了,所以只要針對訊息獨立處理,不必修改原始程式。

Linux 上的中文化始祖 - CLE


Chinese Linux Extension - Linux 中文延伸套件
延伸:修改程式內容,重新編譯打包,以加入中文支援

CLE團隊也知道,光是修改打包只治標而不治本,因此積極與原始Linux團隊合作,期望加入國際化軟體的架構。
包刮 Linux ,  glibc , QT, KDE ,Gnome......都從收過CLE團隊的修改。

所謂國際化,即是將軟體與特定地區及語言脫鉤的過程,當移植時,不必做內部工程上的大量改變或修正。而在地化便是延續國際化的架構,建立某個地區文化的資料庫,填入該地區文化的資料,供程式在執行期呈現。

Gettext


關於自由軟體的國際化,主要是靠著Gettext這套軟體進行,Gettext只是套工具,他利用對訊息的包裝,可以將訊息抽取出來集中在一個 .pot 檔,翻譯者只需要拿pot翻譯成不同語言,並各別存成po檔即可,而開發者會將po檔編索引成為mo檔。

po檔分為檔頭與條目:

  • 檔頭存放的是po檔與其相對的pot檔的相關資訊,包括產生時間、最後翻譯者,還有複數型的定義 (plural - form)。
  • 條目則分為旗標與註解(區別相同訊息但不同意義,e.g: left : leave過去式? 左? )

翻譯工具簡介


  • 翻譯資料庫
  • Launchpad、pootle、transifex、tryneeds等線上共筆的翻譯平台

Ezgo打包技術初窺探


  • What is ezgo
    • 能夠讓從未接觸過OSS的人,接觸OSS並使用它 → 推廣
  • 推廣
    • 目標客群:從未用過OSS的人
    • Ezgo該有哪些特色?
      • 選單
      • 操作設計上貼近Windows思維
  • 從技術面而言
    • 屬於客製化的distribution
      • 有自己的品牌,卻不是一個獨立的distribution
    • Dirty hack產生的問題
      • 沒有組織,東西太零散
      • 版本一多不易管理
      • 不符合Debian規範,無法上傳
    • 目前的做法
      • 儘可能遵循標準機制,並自動化
      • 儘可能採用外加設定檔的方式,不覆蓋現有檔案
  • Debian - ezgo
    • Debian:套件的老祖宗
    • 遵循Debian規範,將常用重複的檔案與設定等等包裝成deb檔

沒有留言:

張貼留言