本文來自:www.EricBess.com 詳細出處參考:http://www.ericbess.com/ericblog/2008/02/05/i18n-l10n/
什么是 I18N 和 L10N ?
I18N 是 internationalization 的縮寫形式,意即在 i 和 n 之間有 18 個字母,本意是指軟件的“國際化”;與之類似,L10N 是 localization 的縮寫形式,意即在 l 和 n 之間有 10 個字母,本意是指軟件的“本地化”。
I18N 和 L10N 從何而來?它們有何區別?
按照軟件開發的慣例,最初的軟件只有英文版本,根據需要,作者再把軟件界面和文檔翻譯成不同國家、地區的語言版本。但是由于實現翻譯的途徑、翻譯的工作效率、翻譯的可重用性等因素各不相同,使翻譯工作面臨很大困境,也阻礙了軟件的推廣和應用。為了方便地將軟件翻譯成不同語言的版本,就需要一套翻譯規范和通用工具,這就導致了“國際化”機制的出現。僅僅翻譯是不夠的,同一種語言在不同國家、地區可能存在多個支系,它們在表達習慣、語法結構甚至文字種類和編碼上都有不同,方言更是千奇百怪,通用的翻譯其質量肯定是不高的。涉及到計算機領域,還存在操作習慣上的差別,而且對某種語言提供完美的輸入、顯示、打印、保存、傳輸并非一件輕而易舉的事,這就導致了“本地化”機制的出現。簡而言之,“國際化”是“本地化”的一部分,主要是指國際化的實現機制和翻譯工作, “本地化”包含“國際化”,是對“國際化”的補充和完善,它還包括為實現對某種特定語言良好的支持而進行的有針對性的翻譯調整以及對軟件進行的打補丁工作。
I18N 和 L10N 的國際組織是什么?
I18N 和 L10N 的國際組織是 Openi18n 組織,其前身是 li18nux 組織。它原來是制定 GNU/Linux 自由操作系統上軟件全球化標準的國際計劃,后來擴充到 GNU/Linux 之外所有開放源代碼的技術領域,因而更名為 Open Internationalization Initiative,由非營利組織 Free Standards Group 贊助,并為世界各大廠商所支持,對于 GNU/Linux 系統上的多國語言文字處理技術和環境有決定性的影響。各個開源軟件開發組織通常都有負責“國際化”和“本地化”工作的分支機構。
I18N 主要使用什么工具工作?
I18N 主要使用 gettext 軟件包使軟件實現國際化支持。事實上它是一整套 I18N 解決方案。
什么是 PO 和 MO 文件?它們有何區別?
PO 是 Portable Object (可移植對象)的縮寫形式;MO 是 Machine Object (機器對象) 的縮寫形式。PO 文件是面向翻譯人員的、提取于源代碼的一種資源文件。當軟件升級的時候,通過使用 gettext 軟件包處理 PO 文件,可以在一定程度上使翻譯成果得以繼承,減輕翻譯人員的負擔。MO 文件是面向計算機的、由 PO 文件通過 gettext 軟件包編譯而成的二進制文件。程序通過讀取 MO 文件使自身的界面轉換成用戶使用的語言。