在資訊科技領域,國際化與在地化(英語:internationalization and localization)是指修改軟體使之能適應目標市場的語言、地區差異以及技術需要。
「localization」的各地常用譯名 | |
---|---|
中國大陸 | 本地化、本土化 |
臺灣 | 在地化、本土化 |
港澳 | 本地化 |
![]() | 此條目可參照英語維基百科相應條目來擴充。 (2023年10月4日) |
國際化是指在設計軟體,將軟體與特定語言及地區脫鉤的過程。當軟體被移植到不同的語言及地區時,軟體本身不用做內部工程上的改變或修正。在地化則是指當移植軟體時,加上與特定區域設定有關的資訊和翻譯檔案的過程。
國際化和在地化之間的區別雖然微妙,但卻很重要。國際化意味著產品有適用於任何地方的「潛力」;在地化則是為了更適合於「特定」地方的使用,而另外增添的特色。用一項產品來說,國際化只需做一次,但在地化則要針對不同的區域各做一次。這兩者之間是互補的,並且兩者合起來才能讓一個系統適用於各地。
基於他們的英文單字長度過長,常被分別簡稱成i18n(18意味著在「internationalization」這個單字中,i和n之間有18個字母)及L10n。使用大寫的L以利區分i18n中的i和易於分辨小寫l與1。
在如微軟及IBM等企業中,則會使用全球化(globalization)來表示此兩者的合稱。[1][2]在英文中,也會使用g11n做為簡稱。也有使用縮寫GILT(globalization、internationalization、localization和translation),即「全球化、國際化、在地化和翻譯」[3]。
範圍
國際化與在地化工作的焦點包括:
- 語言
- 文化
- 書寫習慣
- 產品和服務所要面向的法規
只屬於在地化的主題有:
困難
開發軟體時,國際化和在地化對開發者是一個有挑戰性的任務,特別是當軟體當初設計時沒有考慮這個問題時。通常作法是將文字和其他環境相關的資源與程式碼相分離。這樣在理想的情況下,應對變化的環境時無需修改代碼,只要修改資源,從而顯著簡化了工作。
開發團隊需要人了解其他語言和文化;而這樣的人才,可能難以尋覓。而且資源的複製也可能成為維護惡夢。例如,如果某個語言中顯示給使用者的資訊變化了,其他的翻譯版本都要隨之變化。Gettext之類軟體庫有助於解決這一問題。
自由軟體自由地修改和再分發,因此比較容易國際化,例如KDE擁有70個語言版本。然而大多數專有軟體只提供商業上有利可圖的語言版本。
當然很多自由軟體由於程式結構設計的原因幾乎難以國際化,比如HandBrake。
區域設定(locale)
電腦中一套定義使用者的語言、國家和用於定義使用者希望在其使用者介面上看到的各種可以改變的選擇的參數集合。通常一個 locale 識別碼至少包括一個語言識別碼和一個區域識別碼。
在 UNIX 和 Windows 中,locale 的控制是不同的。在 UNIX 下,通常透過環境變數來控制 locale。這些環境變數包括:LANG
, LC_ALL
, LC_CTYPE
, LC_TIME
, 等等。你可以透過改變這些環境變數來控制你的程式或者命令所表現出來的 locale,前提是這些程式或者命令必須是已經被國際化的和在地化的。在 Windows 下,你可以透過改變控制面板上的「語言/區域」中的區域的值來設定 Windows 的當前使用者的 locale。