多语言设计是国际化系统设计的第一步,也是最基本的内容。很多时候,我们会认为多语言设计非常简单。

对于静态资源来说确实如此,通过加载一个语言包即可,但是对于一些动态内容而言却不太一样。

这些动态内容可能是消息通知、服务器生成的导出内容等。 这里我整理了一个完整的清单,用来指导多语言的方案设计:

  • 前端文案。例如菜单、表单提示信息等。
  • 错误信息。表单验证或者服务器报错信息的提示。
  • 导出文件。导出 Excel 或者 PDF 文件,往往为后端生成。
  • 邮件和消息通知。为用户发送通知时,也需要使用对应语言的模板文件。
  • 关键主数据。例如在电商系统中,管理员需要为支持的语言都添加一份商品数据、商品分类等。
  • 业务数据快照。在交易数据中,为了搜索和存档的目的,有时候需要将一些主数据持久化下来用于搜索或者查看,例如订单中,需要持久化对应的商品数据。

为了支持这些需求,在方案上我们需要考虑这些问题:

  • 如何选择合适的 I18N 框架为前端展示加载合适的语言包?
  • 用户如何设置自己的语言选项?
  • 如何在上下文中传递语言标识?
  • 如何为主数据的多语言数据结构建模?

下面我们逐个讨论。

多语言的基础知识

在开始进入详细的内容之前,先了解几个基本的概念。

I18N

语言代码

多语言设计场景检查清单

参考资料

  • 多语言系统搭建 https://zhuanlan.zhihu.com/p/548263662
  • 多语言系统的数据库设计 https://developer.aliyun.com/article/39819
  • 网址多语言设计 https://learnku.com/articles/58725
Last Updated:
Contributors: linksgo2011