国际化与本地化

讓軟件可以被世界上不同地區的人使用的過程
(重定向自国际化

信息技术领域,国际化与在地化(英語: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). 

外部链接