國際化與本地化

讓軟件可以被世界上不同地區的人使用的過程

資訊科技領域,國際化與本地化(英語:internationalization and localization)是指修改軟件使之能適應目標市場的語言地區差異以及技術需要。

「localization」的各地常用譯名
中國大陸本地化、本土化
臺灣在地化、本土化
港澳本地化

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

國際化和本地化之間的區別雖然微妙,但卻很重要。國際化意味着產品有適用於任何地方的「潛力」;本地化則是為了更適合於「特定」地方的使用,而另外增添的特色。用一項產品來說,國際化只需做一次,但本地化則要針對不同的區域各做一次。這兩者之間是互補的,並且兩者合起來才能讓一個系統適用於各地。

基於他們的英文單字長度過長,常被分別簡稱成i18n(18意味着在「internationalization」這個單字中,i和n之間有18個字母)及L10n。使用大寫的L以利區分i18n中的i和L10n中的1。

在如微軟IBM等企業中,則會使用全球化globalization)來表示此兩者的合稱。[1][2]在英文中,也會使用g11n做為簡稱。也有使用縮寫GILTglobalizationinternationalizationlocalizationtranslation),即「全球化、國際化、本地化和翻譯」[3]

範圍

國際化與本地化工作的焦點包括:

只屬於本地化的主題有:

  • 翻譯
  • 針對特定語言(如東亞語言)的特別支援
  • 符合當地習慣
  • 符合當地的道德觀念
  • 針對當地撰寫內容
  • 符號
  • 排序方法
  • 美學
  • 當地的文化價值和社會環境

困難

開發軟件時,國際化和本地化對開發者是一個有挑戰性的任務,特別是當軟件當初設計時沒有考慮這個問題時。通常作法是將文字和其他環境相關的資源與程式碼相分離。這樣在理想的情況下,應對變化的環境時無需修改代碼,只要修改資源,從而顯著簡化了工作。

開發團隊需要人了解其他語言和文化;而這樣的人才,可能難以尋覓。而且資源的複製也可能成為維護惡夢。例如,如果某個語言中顯示給用戶的資訊變化了,其他的翻譯版本都要隨之變化。Gettext之類軟件庫有助於解決這一問題。

自由軟件自由地修改和再分發,因此比較容易國際化,例如KDE擁有70個語言版本。然而大多數專有軟件只提供商業上有利可圖的語言版本。

當然很多自由軟件由於程式結構設計的原因幾乎難以國際化,比如HandBrake

區域設置(locale)

電腦中一套定義用戶的語言、國家和用於定義用戶希望在其用戶介面上看到的各種可以改變的選擇的參數集合。通常一個 locale 識別碼至少包括一個語言識別碼和一個區域識別碼。

在 UNIX 和 Windows 中,locale 的控制是不同的。在 UNIX 下,通常透過環境變數來控制 locale。這些環境變數包括:LANG, LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以透過改變這些環境變數來控制你的程式或者命令所表現出來的 locale,前提是這些程式或者命令必須是已經被國際化的和本地化的。在 Windows 下,你可以透過改變控制面板上的「語言/區域」中的區域的值來設定 Windows 的當前用戶的 locale。

參見

參考文獻

  1. ^ IBM Globalization web site. [2008-07-17]. (原始內容存檔於2016-03-31). 
  2. ^ Microsoft Globalization Step-by-Step Guide. [2008-07-17]. (原始內容存檔於2008-07-24). 
  3. ^ 王均松. 本地化行业术语GILT核心概念考. 中國科技術語. 2017, 19 (1): 56–58 [2018-10-11]. (原始內容存檔於2020-11-14). 

外部連結