普遍认为,管理多种语言资料既繁琐又费力。但事实上,存在一种工具能帮助我们解决这个难题,接下来我会逐一为大家进行详细介绍。
手工劳动痛点
过去处理多语言资料,主要靠人工来操作。得先把资料整理成 Excel 表格,然后交给翻译公司。翻译完毕后,还得根据表格内容制作代码文件。这样的任务相当繁琐。拿我之前的项目来说,我用了好几天时间来整理表格和同步代码,大部分时间都花在重复性工作上,而且很容易出错,这对工作效率影响很大。
自动工具诞生
我在思考,有没有可能制作一个程序,能让 Excel 和代码文件快速转换?于是,我开始制作这样一个简单好用的程序,并把它的源代码放到了 Github 上。这个程序可以接受额外参数,比如你可以用“node export.js key1=value1 key2=value2”这样的方式来使用。举例来说,“node export.js outputFileName=project inputDir=i18n”就能轻松设定输出的文件名和输入的目录。
输出 Excel 格式
Excel文件名不需添加扩展名。工作表需遵循特定格式,其中首列标注为“file”,紧接其后的是文件名及文件夹路径。第二列标注为“key”,列出基准语言的资源路径,保证目标语言中不缺少任何基准语言已有的路径。之后各列展示目标语言名称,相应位置列出该语言在“key”中的文案,已翻译的内容自动填充,未翻译的则保留空白。
导入代码文件
转换 Excel 为代码文件的操作并不繁琐。只需执行“node import.js inputFile=./xxx.xlsx”这一基本命令,生成的文件便会自动保存在指定目录。此外,你还可以添加额外的参数,其形式与输出时相同,比如“node import.js key1=value1 key2=value2”。这一工具能实现源文件与 Excel 文件之间的快速转换,有效减轻了开发者的工作负担,同时也节省了他们的时间和精力。
业务项目维护
依照这个计划,各个业务项目只需负责维护简体中文这一基本语言。我们配备了专门的国际化支持,负责处理多种语言资源。这些资源被集中保存在一个独立的代码库中,类似于数据库,包含了所有项目和各个分支的语言内容。以一个大型电商平台为例,其不同业务模块对语言的需求各不相同,利用这种机制,管理起来就更加方便。
项目开发与部署
sequenceDiagram

title: 项目构建阶段
project->>i18n service: 请求资源
i18n service->>i18n hub: 调取数据
i18n hub->>i18n service: 返回数据
i18n service->>project: 返回资源
在项目开发阶段,往往仅具备基础语言资源,而其他多语言支持不足。因此,我们需在源代码上实现多语言兼容。尽管这种改造成本不高,仍在预算之内。在项目部署前,我们需从国际化与本地化服务获取多语言资料,将其转换为代码文件并存入特定文件夹。可参考之前提及的半自动工具。若第三方团队更新了翻译的Excel文件,审核通过后,无论人工还是自动审核,都应使用相同的工具将内容转换成项目文件并入库。最后,再向i18n服务提交请求。
在运用不同语言资料时,你遇到了什么难题?你觉得这个工具能否帮你克服这些困难?来点赞、转发这篇文章,并在评论区分享你的观点。
sequenceDiagram
title: 更新资源入库
i18n service->>i18n service: 把 excel 转成源文件
i18n service->>i18n hub: 入库