国际化与本地化(Internationalization and localization)是指调整软件,使之能适用于不同的语言和地区。
国际化是指在设计软件的过程中将软件与特定语言及地区脱钩的过程。当软件被移植到不同的语言及地区时,软件本身不需要做任何的改变或修正。
本地化则是指当移植软件到不同的语言及地区时,在软件内部加上与特定区域有关的资讯和特色的过程。
国际化意味着产品有适用于任何区域和语言的能力;本地化则是为了更适合特定区域用户使用,而另外增添特色。
在软件开发过程中,国际化只需做一次,但本地化要针对每个不同的区域分别做一次。
对于软件开发人员来说,他们实现的是软件的国际化,而对于不同地区的用户来说,他们感受到的是软件的本地化。
Internationalization(国际化)简称“I18n”,因为在 i 和 n 之间有 18 个字符,Localization(本地化)简称“L10n”。
一般说明一个地区的语言时,用“语言_地区”的形式表示,如“zh_CN”表示“汉语_中国大陆地区”,即简体中文;而“zh_TW”表示“汉语_中国台湾地区”,即繁体中文。
Android 系统框架对“I18n”和“L10n”提供了非常好的支持。
Android SDK 并没有提供专门的 API 来实现国际化,而是通过对不同的资源 resource 文件进行不同的命名来达到国际化的目的。同时,这种命名方法还可用于对硬件的区分,例如 res/drawable 目录下的三个文件夹 drawable-hdipi、drawable-ldpi和drawable-mdpi 就是为了适应不同的屏幕分辨率而设立的。