NVMGO product blog about

通用多语言翻译方案

Aug 07, 2020 - Nvmgo

游戏发海外时,避免不了进行语言翻译,在进行语言翻译时,这个过程本是一件简单的事情,导出要翻译的文字,进行翻译,将翻译的文字导入。

但是在实际的过程中,有很多因素会将这件简单的事情,变的很复杂。在翻译过程中对文字进行了添加或者修改;翻译的文档被再次修改;导入翻译后,因为超框问题,多次进行修改,尤其双语同时修改,同时有多个版本多种语言等等。

在这种情况下,希望建立一个操作傻瓜式,运行起来健壮稳定可靠的系统,来将这个复杂的问题,重新变回成一个简单的事情。

这里不分析配置是如何从项目中进行提取的,只单独解决翻译这块,做好中文配置与翻译之间的中介,解决这中间的问题,核心设计如下(为方便描述这里只说中文和英文):

三种资源:

导出待翻译Excel

将基准配置表放到基准文件夹中,选择要翻译的语言,软件会先生成一个空的Excel表,然后循环对基准配置表中的每一条文本进行以下操作:生成存储key=基准文字key+基准文字MD5,拿着key去库中寻找,如果找不到,则将此条信息写入库中,同时插入Excel中,如果只找到中文,则只插入Excel中,如果中文英文都找到,则不处理

导入翻译好的Excel

将翻译好的Excel放到翻译文件夹中,选择导入,软件会循环对翻译的Excel中的每一条进行以下操作:根据Key去库中找出对应的中文,并进行格式校验,如果校验通过,则将英文插入或者更新到库中,如果校验不通过,则生成错误Excel,并插入表中。

可以重复导入同一个翻译Excel,如果分多次给出了多个翻译表格,也可以无序的随意导入

生成翻译配置表

将基准配置表放到基准文件夹中,选择要翻译的语言,软件会复制一份基准配置到翻译配置文件夹中,然后循环对表中每一条进行以下操作:生成存储key=基准文字key+基准文字MD5,拿着key去库中寻找en,如果找到,则将en对应的value取出,替换到翻译配置表中,如果找不到,则仍然保留原来的中文

扩展

以上是核心设计,在此基础上可以方便的进行其他扩展