複製鏈接
請複製以下鏈接發送給好友

I18N

鎖定
i18n(其來源是英文單詞 internationalization的首末字符i和n,18為中間的字符數)是“國際化”的簡稱。在資訊領域,國際化(i18n)指讓產品(出版物,軟件,硬件等)無需做大的改變就能夠適應不同的語言和地區的需要。對程序來説,在不修改內部代碼的情況下,能根據不同語言及地區顯示相應的界面。 在全球化的時代,國際化尤為重要,因為產品的潛在用户可能來自世界的各個角落。通常與i18n相關的還有L10n(“本地化”的簡稱)。
中文名
國際化與本地化
外文名
internationalization and localization,I18N
發源於
英語國家
屬    於
世界範圍內程序員的通用語言
問    題
翻譯工作面臨很大困境

I18N介紹

信息技術領域,國際化與本地化(英文:internationalization and localization)是指修改軟件使之能適應目標市場的語言地區差異以及技術需要。
國際化是指在設計軟件,將軟件與特定語言及地區脱鈎的過程。當軟件被移植到不同的語言及地區時,軟件本身不用做內部工程上的改變或修正。本地化則是指當移植軟件時,加上與特定區域設置有關的信息和翻譯文件的過程。
國際化和本地化之間的區別雖然微妙,但卻很重要。國際化意味着產品有適用於任何地方的“潛力”;本地化則是為了更適合於“特定”地方的使用,而另外增添的特色。用一項產品來説,國際化只需做一次,但本地化則要針對不同的區域各做一次。這兩者之間是互補的,並且兩者合起來才能讓一個系統適用於各地 [1] 
基於他們的英文單字長度過長,常被分別簡稱成i18n(18意味着在“internationalization”這個單字中,i和n之間有18個字母)及L10n。使用大寫的L以利區分i18n中的i和易於分辨小寫l與1。

I18N背景信息

眾所周知,計算機技術發源於英語國家,英語也因此成為世界範圍內程序員的通用語言,許多優秀的編程語言、開發工具、文檔都是英文版,導致許多軟件開發者習慣首先開發英文版本,根據需要,再把軟件界面和文檔翻譯成不同國家、地區的語言版本。
但是由於實現翻譯的途徑、翻譯的工作效率、翻譯的可重用性等因素各不相同,使翻譯工作面臨很大困境,也阻礙了軟件的推廣和應用。
為了方便地將軟件翻譯成不同語言的版本,需要一套翻譯規範和通用工具,這就導致了“國際化”機制的出現。
僅僅翻譯是不夠的,同一種語言在不同國家、地區可能存在多個支系,它們在表達習慣、語法結構甚至文字種類和編碼上都有不同,方言更是千奇百怪,通用的翻譯其質量肯定是不高的。涉及到計算機領域,還存在操作習慣上的差別,而且對某種語言提供完美的輸入、顯示、打印、保存、傳輸並非一件輕而易舉的事,這就導致了“本地化”機制的出現。
國際化是指在設計軟件時,將軟件與特定語言及地區脱鈎的過程。當軟件被移植到不同的語言地區時,軟件本身不用做內部工程上的改變或修正。本地化則是指當移植軟件時,加上與特定區域設置有關的資訊和翻譯文件的過程。 國際化和本地化之間的區別雖然微妙,但卻很重要。國際化意味着產品有適用於任何地方的潛力;本地化則是為了更適合於特定地方的使用,而另外增添的特色。用一項產品來説,國際化只需做一次,但本地化則要針對不同的區域各做一次。 這兩者之間是互補的,並且兩者結合起來才能讓一個系統適用於各地。
簡而言之,“國際化”是“本地化”的一部分,主要是指國際化的實現機制和翻譯工作, “本地化”包含“國際化”,是對“國際化”的補充和完善,它還包括為實現對某種特定語言良好的支持而進行的有針對性的翻譯調整以及對軟件進行的打補丁工作。
在如微軟及IBM等企業中,則會使用全球化(globalization)來表示此兩者的合稱。在英文中,也會使用 g11n做為簡稱。
隨着全球經濟的一體化,軟件開發者開發出支持多國語言、國際化的應用是一種趨勢。對於Web應用來説,同樣的頁面在不同的語言環境下需要顯示不同的效果。也就是説,一個Web應用程序在運行時能夠根據客户端請求所來自的國家和語言顯示不同的用户界面。

I18N國際組織

i18n 和 L10n 的國際組織是 Openi18n 組織,其前身是 li18nux 組織。它原來是制定GNU/Linux 自由操作系統上軟件全球化標準的國際計劃,後來擴充到GNU/Linux 之外所有開放源代碼的技術領域,因而更名為 Open Internationalization Initiative,由非營利組織 Free Standards Group 贊助,併為世界各大廠商所支持,對於GNU/Linux 系統上的多國語言文字處理技術和環境有決定性的影響。各個開源軟件開發組織通常都有負責“國際化”和“本地化”工作的分支機構。
i18n 主要使用 gettext 軟件包使軟件實現國際化支持。事實上它是一整套 i18n解決方案。現在開源程序中普遍通過分離語言文件 ,然後通過 gettext 軟件包來實現國際化發展。

I18N範圍

國際化與本地化工作的焦點包括:
語言
  • 字母。目前大部分的系統都採用統一碼為標準來解決字符編碼
  • 不同的數字命名系統。
  • 書寫方向。譬如德語是從左到右,而波斯語、希伯來語和阿拉伯語是由右到左。
  • 相同語言在不同地區的拼法差異,如美國英語、加拿大英語使用localization,而英國英語和澳大利亞英語使用localisation。
  • 文件處理上的差異,如某些文字存在大小寫,其它則否。字母順序。
  • 文字的圖像表示(列印物、內含線上圖片)。
  • 讀法(音頻)
  • 視頻的字幕
文化
  • 圖片和顏色:這牽涉到理解和文化適宜的議題。
  • 名字和稱謂
  • 政府給定的編碼(如美國的社會安全碼,英國的National Insurance number,愛沙尼亞的Isikukood及其它各國的身份證號碼)和護照
  • 電話號碼、地址和國際郵遞區號
  • 貨幣 (符號、貨幣標誌的位置)
  • 度量衡
  • 紙張大小
書寫習慣
  • 日期跟時間的格式,包含各式日曆。
  • 時區(在國際場合會使用世界標準時間)
  • 數字格式(小數點、分隔點的位置、分隔所用的字符
產品和服務所要面向的法規
只屬於本地化的主題有:
  • 翻譯
  • 針對特定語言(如東亞語言)的特別支持
  • 符合當地習慣
  • 符合當地的道德觀念
  • 針對當地撰寫內容
  • 符號
  • 排序方法
  • 美學
  • 當地的文化價值和社會環境

I18N困難

開發軟件時,國際化和本地化對開發者是一個有挑戰性的任務,特別是當軟件當初設計時沒有考慮這個問題時。通常作法是將文本和其他環境相關的資源與程序代碼相分離。這樣在理想的情況下,應對變化的環境時無需修改代碼,只要修改資源,從而顯著簡化了工作。
開發團隊需要了解其他語言和文化,而這樣的人才可能難以尋覓。而且資源的複製也可能成為維護的惡夢。例如,如果某個語言中顯示給用户的信息變化了,其他的翻譯版本都要隨之變化。Gettext之類軟件庫有助於解決這一問題。
由於自由軟件自由地修改和再分發,因此它比較容易國際化。當KDE擁有70個語言版本時,大多數專有軟件只能夠用於商業上有利可圖的語言。

I18N區域設置

計算機中一套定義用户的語言、國家和用於定義用户希望在其用户界面上看到的各種可以改變的選擇的參數集合。通常一個locale標識符至少包括一個語言標識符和一個區域標識符。
在UNIX和WINDOWS中,locale的控制是不同的。在UNIX下,通常通過環境變量來控制locale。這些環境變量包括:LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以通過改變這些環境變量來控制你的程序或者命令所表現出來的locale,前提是這些程序或者命令必須是已經被國際化的和本地化的。在Windows下,你可以通過改變控制面板上的“語言/區域”中的區域的值來設定Windows的當前用户的locale。
與全球化的關係
國際化有時與 全球化 交替使用以描述聯繫日益緊密的世界的經濟與文化影響。
國際化經常(特別是在軟件中)指提供一個用於多語言的框架,有時也指事物(機構、理念)可以藉此影響多個民族的過程。 此時很少使用全球化,因為它一般指機構和產品出現與世界各地(同時也引起了對本地化的需求)。
本地化可能用於描述貼近最終用户以減小全球化的環境和其他副作用。

I18N其它

除了i18n,L10n(localization),g11n(globalization),還有m17n(multilingualization),區別是:
i18n支持多種語言,但是同一時間只能是英文和一種選定的語言,例如英文+中文、英文+德文、英文+韓文等等;
L10n(localization),支持2種語言,英文和另外一種語言(例如中文);
g11n(globalization),簡單的理解可以認為g11n = i18n + L10n。
m17n(multilingualization)可以在同一時間支持多種語言,例如你可以在一個頁面裏看到中文、英文、德文和韓文。
參考資料
  • 1.    崔啓亮. 軟件國際化與本地化管理[J]. 軟件和集成電路, 2006(23):58-59.