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

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

如下所示:

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的实现如下:

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

搭建网站

环境 Windows 10(64 位) Git-2.7.4-64-bit node-v4.4.7-x64 如果上述软件已经安装的,跳过,没有安装的下载安装。 1...

7316
来自专栏Android干货

网页一键加入QQ群

6715
来自专栏Python爬虫实战

Python爬虫:爬取在线教程转成pdf

1、网站介绍2、准备工作2.1 软件安装2.2 库安装3、爬取内容3.1 获取教程名称3.2 获取目录及对应网址3.3 获取章节内容3.4 保存pdf3.5 合...

1831
来自专栏wym

Linux ubntu 下操作

ls 显示当前下面的文件及文件夹 ls -a 显示当前目录下的所有文件及文件夹包括隐藏的.和..等 ls -al 显示当前目录下的所有文件及文件夹包括隐藏的.和...

1592
来自专栏区块链

Web安全测试基础-2

文 | 李文祥 一、Web安全漏洞概念及原理分析 1.2 跨站脚本攻击(XSS) 概念:通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏...

2089
来自专栏云计算教程系列

如何在Ubuntu 14.04上保护WordPress免受XML-RPC攻击

WordPress是一个流行且功能强大的CMS(内容管理系统)平台。它的受欢迎程度可能会以专门针对WordPress网站的恶意流量形式引起不必要的关注。

530
来自专栏Porschev[钟慰]的专栏

Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

前言   前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识!   主要是些基础的东西...   如何去创建...

3467
来自专栏Youngxj

Linux查看实时带宽流量情况

1.2K4
来自专栏马涛涛的专栏

使用NPM

Nodejs生态圈很强大,第一个原因就是NPM,因为全球有无数的程序员在NPM中贡献了自己的力量。

2143
来自专栏Android干货

Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中

28710

扫码关注云+社区

领取腾讯云代金券