“国际化”和“本地化”指什么?它们之间有什么关系?
仁者见仁,智者见智。本文基于W3C网站中常见的、高频的场景,对“国际化”和“本地化”进行定义。
“本地化”通常是指一种适配方式,让产品、程序或者文档,适配特定地区语言、文化和市场。
本地化(localization)在英语中一般简写为“l10n”, 其中10指“l”和 “n”之间共包含10个字母。
狭义的本地化是指用户界面或者相关文档的翻译,广义的本地化更为复杂,涵盖且不限于以下内容:
特定情况下,本地化甚至需求对于一些复杂的逻辑流程,视觉设计和呈现效果进行重新思考,比如会计业务出海。假如与原始文化差距较大,还需要对用户模型进行重新设计。
对“国际化”的定义也不尽相同,此处采用W3C官方最常用的定义。同时,国际化在其他场合也会有不同的叫法,比如“全球化”。
“国际化”是指一种软件设计和开发的模式,目的是让系统、程序或者产品,便捷的满足不同文化、地区和语言的本地化诉求。
国际化(internationalization)在英语中一般简写为“i18n”, 其中18指“i”和 “n”之间共包含18个字母。
国际化通常包含以下推荐模式:
注意:某些内容、程序或者产品转换为另一个语言的过程中,上面的过程并非都是必须的;但是,作为设计和开发的最佳实践,可以让系统快速支持出海本地化。纵使短期没有本地化的诉求,也可以提升系统的扩展性。
相较于只做简单的文本适配,真正开发一款从语言到文化都适配全球化的产品复杂度和人力成本都非常高。因此,国际化的设计理念和最佳实践对于软件和产品的本地化非常重要。(回头想想,“千年虫”问题,由于没有遵守最佳实践,设计基于"19xx"开发时间,减少了两个字符,引发了重大问题)
因此,理想的架构下,国际化理念应该在软件的起步和开发阶段就被考虑,而不是当遇到问题时,花费宝贵的时间和大量人力进行重构和重写。