天天德州-海外版-Unity多语言配置实现

栏目: 编程语言 · 发布时间: 6年前

游戏在设计之初采用的是简体中文,现在要支持英文和繁体,游戏内支持玩家切换语言,游戏内多语言主要包括代码中写死的文本,如弹框或错误码描述,预制件中写的脚本以及图片中的文本。不同类型的文本实现不一样,思路是一致的,首先生成本地配置描述(不同语言的文本描述),在运行时脚本根据语言类型读取配置数据。

如下所示:

1、代码中写的文本提示:

翻译思路:在应用打包的过程中,生成本地数据库,根据数据库Key获取不同语言的文字描述,Key为命名空间_文件名_Num。

(1)扫描所有的CS文件,获取简体中文字符并生成表格:

生成后的Excel只包含文本ID和简体中文描述, 对应的英文和繁体文本由产品配置

(2)根据配置后的表格,分别生成对应语言的json文件;

分别将EXCEL表格中的三列存储为三个json文件,CodeChinese .json、CodeEnglish.json和CodeTraditionChinese.json,存储为其他类型的文件也可以,主要是为了方便。

(3)替换CS文件中所有的简体中文字符,改成查数据库方式:

在TextDatabase.Get内部会判断语言类型,读取相应的json文件,并根据索引返回对应文本。

2、预制件中写的文本:

翻译思路:遍历所有的prefab和scene,获取所有的Text并添加自定义脚本,生成本地数据库,脚本中传入数据库Key,Key为text组件在配置中的序号。

(1)遍历Text组件:

(2)获取Text组件中的文本信息,存入本地,并添加MultiLangTextExtend脚本,并传入Text在数据库中的编号Key:

存在一种特殊情况,部分中文的翻译在不同的地方会不一样,我们手动挂载MultiLangReplaceText脚本,并在脚本中手动给出新的文本描述。这些Text脚本就不需要挂载MultiLangTextExtend了。

替换脚本如下,参数为手动输入的:

MultiLangTextExtend根据TextID获取文本:

UIMultLangTextDatabase的实现与TextDatabase类似,生成一张Excel表格,产品配置好中英文翻译后,生成三个json文件。分别存储简体中文、英文和繁体中文数据。与代码翻译不同的是,预设中的命名会存在重复,因此采用编号来标识。

3、美术资源中的文本:

与Text翻译类似,Image的替换也可以采用同样的思路,不同的是,为了图集的打包以及Alpha分离,将每一个图片生成了一个预设,在加载的时候先加载预设然后再获取材质。

文件夹前缀标识图片是否需要生成替换资源,添加脚本。一个文件夹下生成一个json配置文件,主要存储预设路径和名称,原始资源路径名称作为json文件的标识。不同语言的图片名称是一样的,只是存储在不同的文件夹下面。

遍历过程中判断Image组件的AssetPath是否在指定的图片路径中,满足条件则添加MultiLangImageExtend脚本:

MultiLangImageExtend的实现如下:


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

jQuery基础教程

jQuery基础教程

Jonathan Chaffer、Karl Swedberg / 李松峰、卢玉平 / 人民邮电出版社 / 2009-11 / 49.00元

《jQuery基础教程(第2版)》作为《jQuery基础教程》的升级版,涵盖了jQuery 1.3的全部新特性,特别是新增了介绍jQuery UI(jQuery官方用户界面插件库)的内容。《jQuery基础教程(第2版)》前6章以通俗易懂的方式介绍了jQuery的基本概念,主要包括jQuery的选择符、事件、效果、DOM操作、AJAX支持等。随后3章从理论到实践,通过表格操作、构建功能型表单、实现......一起来看看 《jQuery基础教程》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具