游戏的多语言版本解决方案

最近在做游戏的多语言版本,台湾版和韩国版。
海外版本就涉及一个语言翻译的问题,比如台湾版用繁体字,韩国版用的韩语。

一个Unity3D游戏中,使用中文的地方有以下几个地方:

  1. 代码中出现中文,比如一些飘字或文字提示等
  2. 配置表中出现的中文,比如道具名字、玩法描述等
  3. 带有中文字体的图片资源
  4. Prefab中Text里的中文

那么解决多语言版本的首先要解决问题就是,要把游戏中的所有中文抽取出来,尽可能集中放在一张表中,方便拿给相关人员翻译。

具体思路如下:
代码和配置表的处理方案:

  1. 写一个中文正则工具,把代码中出现的中文抽取出来,生成Excel表,方便拿给相关人员翻译。
  2. 使用一个有含义字符串替换原来中文,代码中有一句中文:Tips.ShowMeg("挑战次数用完,明日再来"),替换Tips.ShowMsg(Language.GetWord(10001)),其中Language.GetWord是用来根据Id获取语言包的接口,10001是Id,这个Id是唯一的,根据这个Id索引出被翻译的内容。
    3.做文本替换的时候,需要去重,因为代码中或配置表中会有很多重复的中文,避免翻译重复的文本。

带有中文字体的处理方案:
把游戏中所有带有中文字的图片找出来,让美术翻译好再替换回去。
前期规划好的话,这个找图片的工作就不大,比如带有中文的图片的命名规范好,如后面带有xxx_isfont.png类似,这样,那么做一个小工具,遍历下资源目录,可以很方便的把_isfont资源找出来,这里值得注意的是,找出来的资源按原本的目录结构与命名交给美术同事,翻译好再替换,这样处理起来方便,也不会破坏资源依赖。

预设中文的处理方案:
前期的做法,我把prefab的中文全部抽出来,放到配置表中,保存具体Text的路径,然后prefab加载完成的时候再重新刷新Text组件。但是这会造成资源的浪费,问题替换工作完全可以在游戏开始前替换好。

  1. 把prefab的Text里的中文抽出来,放到一张Excel中,保存Text的路径
  2. 翻译好后,再重新根据Text路径把翻译好的文本设上去,保存预设。

以上是游戏多语言版的解决思路,使用Python中的xlrd和lxwt制作小工具。配置表中替换文本的时候,避免递归死循环,代码和配置表使用Utf-8格式。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,167评论 3 119
  • 《诗经•小雅•小旻》有云“不敢暴虎,不敢冯河。人知其一,莫知其他。战战兢兢,如临深渊,如履薄冰。”以前对此理...
    苏北芄兰阅读 2,359评论 1 1
  • 200公里回家路 又到国庆长假,又可以回家看奶奶,又可以去地里种菜摘果,又可以“偷鸡摸狗”,我的心,在昨晚就已...
    喵小秋阅读 281评论 0 0
  • 如果说《欢乐颂》还有什么值得称道的地方,那就是比较成功的塑造了樊胜美这一形象,也算是对劳苦大众一个比较满意的答复了...
    垄上行云阅读 354评论 0 1
  • 好久没有因为一句许诺而感动流泪,晚上在食堂,我也说不上来如何感谢你,一直陪我调试永远保持60而不是59的23号寄...
    鹹蛋超人Mercury阅读 512评论 0 0

友情链接更多精彩内容