其实国际化这个东西没什么好说的,原理很简单,用一个函数根据当前的语言类型取出对应的文本就 ok 了。本文的出发点也不是讲国际化怎么用的问题,而是怎么快速生成对应的文本数据。
实际开发中我们知道,通常来说在服务器会保留多个语言文件。每个语言文件都格式,key 都完全一样,只是对应都值不一样。通常情况下我们会优先完成一种语言。然后再在该语言的基础上进行其他语言的翻译。
作为一个程序员,肯定是不能每一个翻译都自己填进去。所以我们的思路是:
- 通过基础语言包导出为 EXCEL(仅文字,相同文字去重)
- 有专业翻译人员对照 EXCEL 进行翻译为对应都其他语言
- 将翻译之后的 EXCEL 导入数据库,供将来使用(也可以跳过该步骤)
- 连接数据库读取数据(读取 EXCEL)并按照基础语言包格式生成对应的语言包
- 日志(哪些文本没有翻译对应的值)
我们之前就是将所有的文本都存放到数据库,然后根据自己到需要读取对应到值。因为我 node 用的熟一些,所有下面的例子用 node 实现,当然其他语言都是一样的。下面上代码:
1 | const fs = require("fs"); |
[越努力,越幸运!]