FOSS 簡介/本地化和國際化
根據本地化研究所,
本地化是將產品建立或調整到特定地區的過程,即針對特定目標市場的語言、文化背景、習慣和市場要求。透過適當的本地化產品,使用者可以使用自己的語言和文化習慣與產品進行互動。這也意味著所有面向用戶的訊息和所有使用者文件(印刷版和電子版)都使用使用者的語言和文化習慣。最後,本地化的產品滿足使用者國家/地區的監管和其他要求。
國際化是一種設計和生產產品的模式,可以輕鬆地適應不同的地區。這需要從產品中提取所有語言、國家/地區和文化相關元素。換句話說,開發應用程式的過程,其功能設計和程式碼設計不基於單個地區進行假設,並且其原始碼簡化了程式不同地區版本的建立,被稱為國際化。[1]
本地化和國際化通常可以互換使用。上面參考軟體開發給出的定義清楚地展示了區別。就 FOSS 開發而言,一個很好的“國際化”和“本地化”的例子就是Mozilla專案。Mozilla 是目前最知名和最廣泛使用的 FOSS 網路瀏覽器。Mozilla 實現了國際化,因為 Mozilla 專案背後的開發人員社群設計和開發了他們的軟體以便在多個地區執行。當本地開發人員使用 Mozilla 專案提供的指南和本地化工具包修改或調整產品以適應特定地區時,Mozilla 實現了本地化。這種修改通常包括翻譯使用者介面、文件和包裝,以及更改和定製功能以匹配該地區的用法模式。
由於 Mozilla 是一個 FOSS 專案,任何人都可以對其進行國際化和本地化。Mozilla 原始碼是根據Mozilla 公共許可證 (MPL)分發的,該許可證是基於開源計劃並獲得批准的許可證。Mozilla 專案旨在為更大的網際網路社群服務,該社群被認為是一個由來自眾多語言組的使用者組成的全球社群。Mozilla 專案的目標之一是“倡導將 mozilla.org 產品本地化為任何世界語言”。
Mozilla 的完全本地化版本覆蓋了 34 種不同的語言。本地化工作仍在繼續進行,以覆蓋大多數其他語言。[2]
Venkatesh Hariharan 教授
對於每個不同的地區或國家,本地化GNU/Linux所面臨的挑戰各不相同。一些地區可能發現本地化只需要付出很少的努力。其他地區可能發現本地化需要進行大量的修改和定製程式設計。這在很大程度上取決於地區的特定需求與GNU/Linux中已本地化的需求之間的相似性。
使用不同的編碼、輸入和顯示系統,本地化GNU/Linux有許多不同的方法。目前,最有效的技術方法是透過 Linux-Unicode-OpenType 模型進行本地化。以下是不同技術的簡要說明。
- Unicode ( http://www.unicode.org )
- Unicode編碼系統(最新版本為 Unicode 4.0)是用於編碼字元和符號的行業標準。它與 ISO 通用字元集標準 10646 密切相關。ISO 和Unicode 聯盟協調對這兩個標準的新增。Unicode 聯盟由蘋果和施樂於1991年共同創立,現在擁有超過 100 個成員,包括 Adobe、IBM、微軟、Sybase、康柏、惠普、甲骨文、Sun Microsystems、Netscape 和愛立信。
- Unicode和ISO 10646的目標是包含世界上所有語言,每個字元程式碼對應一個“字形”。字元程式碼的組合產生用於複雜字元的組合字形(特別是在亞洲語言中)。最初的Unicode標準指定了 16 位字元的編碼,允許總共 65,535 個可能的字元/符號。該標準的後續版本已將編碼擴充套件到 32 位範圍,允許編碼超過一百萬個不同的字元和符號。
- 隨著全球化的加速,Unicode 標準越來越重要。它是網際網路上最相關的編碼系統。隨著網際網路滲透率在發展中國家和發達國家不斷提高,將 Unicode 整合到軟體和內容開發中的好處不容忽視。
- OpenType ( http://www.adobe.com/type/opentype/main.html )
- 字型是本地化的“前端”,通常受到非技術觀察員的最多關注。因此,字型開發通常被視為本地化的全部。然而,字型開發只是整個本地化過程的一個重要組成部分,儘管它是最顯眼的。
- OpenType 是一種跨平臺字型檔案格式,由微軟 和Adobe 共同開發。它基於 Unicode 編碼標準,並在一個字型檔案中提供多種語言字元集。傳統的西方 Postscript 字型僅限於 256 個字形,而一個 OpenType 字型可以包含超過 65,000 個字形,允許使用單個字型顯示多種語言。
使用 Linux-Unicode-OpenType 模型,大多數本地化工作涉及以下步驟
- Unicode 標準修正/增強
- 字型開發
- 輸入法
- 修改應用程式以處理本地語言特性
- 翻譯應用程式訊息
- 確保更改被全球 FOSS 社群接受
建立能夠充分處理世界各地無數語言需求的編碼非常複雜。這項任務的浩瀚性導致了某些語言規範中的錯誤和不足,特別是來自ICT發展水平較低的國家的語言。此外,雖然Unicode可能已經包含了對世界上所有主要語言的編碼,但對其他語言和方言(僅印度就有超過 1,000 種語言和方言)的編碼要麼不完整,要麼不存在。在現有的Unicode標準缺乏的國家,需要對現有 Unicode 標準進行審查,並向Unicode 聯盟提出更改建議。
一旦開發出令人滿意的Unicode標準,下一個挑戰是確保有一個免費提供、跨平臺的字型。沒有字型,就無法以電子方式顯示、使用和操作任何語言。現代字型,特別是 OpenType 字型,不僅僅是語言的視覺表示。 OpenType 字型包含單詞顯示背後的邏輯,字形如何與周圍字形互動和改變。與西方字母(阿拉伯語、寮國語、宗喀語等)有很大不同的語言,通常沒有常用的非專有字型。
字型開發並非易事。一個高質量的專業字型可能需要幾年時間才能開發出來。
下一步是標準化和實施該語言的輸入系統。計算中最常見的輸入方法是透過鍵盤,許多國家已經建立了標準鍵與本地語言字元之間的對映。這些通常是臨時採用,一個國家內使用幾種。例如,孟加拉國經常使用幾種鍵盤佈局。缺乏單一標準是字元集/編碼、鍵盤對映、字型等不相容實現的結果,並進一步導致了不相容。從一開始就解決和標準化輸入方法為開發人員提供了一個共同的起點。
一旦輸入方法標準化,就必須編寫軟體來在 GNU/Linux 下實現該標準。如果字元數量少於可能的鍵組合,這將成為一個簡單的鍵盤按鍵重新對映任務。當字元數量遠遠超過鍵盤上的按鍵時(例如,漢語有 30,000 個漢字),就需要更高階的技術。
雖然大多數主要 FOSS 應用程式已經過國際化,但可能仍需要進行一些修改以適應本地語言特性。例如,大多數文字處理器在空格處斷詞,但在不使用空格的語言中,必須建立特殊規則來指定斷詞順序。類似的問題也存在於單詞排序、文字流和其他問題中。大多數語言將需要最少的修改,但某些語言可能需要對應用程式進行大量修改。
此外,還需要指定特定於區域設定的資訊,如日期格式、貨幣符號和其他問題。這通常是一個簡單的任務,涉及編輯文字檔案。
本地化GNU/Linux的下一步涉及翻譯應用程式傳遞給使用者的訊息。諸如“檔案未找到”或“操作完成”之類的訊息必須翻譯成當地語言。這項任務幾乎不需要技術技能,因為訊息通常儲存在文字檔案中,便於檢視和編輯。但是,翻譯成千上萬的訊息和幫助檔案是一項可能需要數年才能完成的任務,並且通常是本地化過程中最慢的部分。即使任務僅限於最常用的應用程式(網路瀏覽器、辦公生產力套件),也必須付出相當大的努力。
FOSS 開發方法的主要優勢之一是,維護成本通常由軟體的各個使用者共享。但是,只有當所做的更改被全球社群接受時,這才是可能的。本地化可能涉及許多不同軟體元件的更改,每個元件都由不同的專案團隊維護。因此,應該集中努力確保所有更改都得到每個團隊的接受,通常是透過確保更改以與專案團隊未來方向相容的方式進行。從本質上講,一個人必須從一開始就在全球團隊努力中扮演角色,否則就會冒著成為唯一一個維護 GNU/Linux 獨立版本的風險。
- ↑ “本地化研究所”[線上主頁];可從 http://www.localizationinstitute.com/switchboard.cfm?page=terminology 獲得;網際網路;訪問時間:2003 年 11 月 9 日。
- ↑ “MLP – 持續本地化專案”[線上主頁];可從 http://www.mozilla.org/projects/l10n/mlp_status.html#contrib 獲得;網際網路;訪問時間:2003 年 11 月 9 日。
- ↑ 可從 http://www.medialabasia.org/news/news_top2.html 獲得;網際網路;訪問時間:2003 年 5 月 20 日。