软件设计中的国际化:商业入门指南

Updated April 2, 2021
Guojihua yu bendihua bing bu xiangtong ruhe lijie i18n - Smartcat blog
Smartcat covers all your language needs with AI translation, AI content generation and AI human workflows.

“国际化”和“本地化”这两个术语常被混用,这导致了一些困惑,尤其在软件开发者中。本文将阐明国际化的真正含义,以及如何在贵公司中最佳地实施国际化。


让我们先引用维基百科的定义:

本地化是指通过翻译文本并添加特定区域组件,将国际化软件适应特定地区或语言的过程。
国际化则是设计软件应用程序使其能够适应多种语言和地区,而无需进行工程变更的过程。

关键要点在于,与本地化不同,国际化是开发者的任务,即应在产品发布前充分完成。这需要周密的规划,以及为此目的量身定制的开发流程和工具。

国际化的关键方面

国际化是一个涉及诸多方面的复杂过程。其中最重要的包括:

1. 用户界面(UI)设计

用户界面应采用便于适配多种语言和地区的通用设计,具体包括:

  • 字体:界面应选用可轻松替换的字体,以应对其他语言环境中字体缺失的情况。

  • 颜色和图像:这些元素也应易于替换,因为某些颜色和图像在其他文化中可能具有负面含义。

  • 文本容器:理想情况下,这些元素应能同时适配超长文本、超短文本以及从右向左书写的文本。

2. 数据格式与存储

字符串应采用便于本地化的方式存储,具体包括:

  • 编码:字符串应采用UTF-8编码,这是Unicode字符串最广泛使用的编码方案。

  • 语法形式:字符串设计应便于适配复数形式与性别形式,例如采用ICU格式。

  • 日期与时间:应采用易于本地化的格式存储,例如遵循ISO 8601标准。

  • 数字:应采用易于本地化的格式存储,例如货币使用ISO 4217标准,地区代码使用联合国M.49标准。

一个常见的错误是直接在代码中存储字符串,例如用于按钮或字段等用户界面元素。这会使后续本地化工作变得极其困难,并可能导致产品发布出现重大延迟。

3. 流程与工具

国际化是一个复杂的过程,需要周密的规划和开发。它还要求使用工具来支持整个流程,例如用于翻译记忆库和术语管理,或用于本地化产品的自动化测试。

虽然可选工具众多,但我们建议重点关注那些能实现翻译与本地化持续集成/持续交付(CI/CD)流程的解决方案。这样既无需手动发送内容进行翻译,也无需人工核查译员的工作进度。

从哪里开始?

国际化工作在产品开发前就应启动,并在产品发布后持续推进。因此,国际化应纳入最高层级的规划流程。

1. 寻找(或成为)国际化推动者

讽刺的是,最具挑战性的部分往往在于说服所有相关人员:国际化对产品成功具有重大影响,必须予以重视。

为此,你需要准备一套清晰的论证,阐明国际化的商业价值——例如通过让产品触达新市场的潜在客户来提升营收,或通过避免后期本地化投入的时间与资金成本来降低运营开支。

可援引Lotus 1-2-3的案例佐证:这款曾称霸市场的电子表格产品因所有字符串均采用硬编码,导致后续本地化时耗费两年时间分离代码与文本,最终在竞争中败给微软。

2. 确定将使用的格式和工具

当所有人都明确了国际化(i18n)的需求后,就可以开始考虑技术细节了。 例如:

  • 代码中将采用何种格式存储字符串,并将其转换为实际文本?

  • 翻译和本地化将使用哪些工具/技术?

  • 该流程涉及哪些角色与职责?

理想情况下,您应制定一份详尽的国际化计划/战略,并设计一套适用于所有产品的流程规范。这样一旦战略确立,就能轻松适应每次新产品发布的需求,同时避免重复讨论相同内容。

3. 执行并监控

策略确立后,便是执行与监控流程的阶段。首先引入支持流程的新工具和新技术,随后逐步引入新角色、职责和流程(但切忌操之过急)。

在流程中寻找痛点并予以消除,例如通过自动化处理或寻找新工具来简化操作。 持续收集本地化人员的反馈,据此优化流程。

最终目标是构建高效可靠的流程体系,这也将为未来产品的本地化奠定基础。国际化流程越成熟,您需要投入的精力就越少。

结论

国际化是产品开发过程中至关重要的一环,但要将其引向正确方向却充满挑战,尤其当其价值尚未被所有人充分认知时。

希望这篇简短的文章能帮助您迈出正确的第一步。

您不妨了解一下Smartcat——这款一体化本地化平台,支持多种本地化方案,内置自由职业者与翻译机构双重市场,并能与主流版本控制系统无缝集成。

💌

订阅我们的新闻

电子邮件 *