游戏开发中的多语言处理
前言
之前我写过一遍《数据表的使用》的文章,今天继续用文本处理为例讲解一下数据表导出工具的使用和多语言的使用方式。
编写数据表
我们先定义一个UI文本表,写好表头,添加几个测试用对本文,注意类型使用lang。
使用工具导出
打开build.bat文件,修改数据表和项目路径,双击运行,这时候如果不出问题你的项目下就会出现对应的数据和枚举文件 为了减少配置数据的大小,所有数据才用数组形式,所以生成了枚举文件,使用枚举索引对应的数值。
使用数据
- 添加数据到数据管理器,如果不是合并的表需要给一个key,我通常使用文件名。
所有的数据都归XlsxDataManager负责管理,不过这个XlsxDataManager可以分模块,如果游戏中数据始终不清理,可以使用一个就行。 2. 将语言文件添加到语言管理器。
语言文本管理器的处理方式与creator官方插件i18n处理方式一样,也可以处理文本替换。 3. 定义一个UI文本管理类 4. 定义UI文本组件
在界面中拖入一个label,挂上UI文本组件,填好我们在数据表中定义的ID
运行查看效果即可
如何切换语言?
执行另一个脚本,这个脚本每次都会添加zh中新添加的字段,不会替换已有字段。
如果不出问题,导出目录会多出一个语言文本,可以拿给负责翻译的人员。 为了测试自己简单翻译一下。
更改语言为en
运行看效果
结语
- 此套方案可以用于同时支持多种语言,也可以只支持一种语言,由项目需求而定。
- 如果需要替换文本可以直接调用语言管理器的接口使用。
浏览更多内容,请关注微信公众号《微笑游戏》
框架维护
- 购买框架的很多同学还没有收货,请尽快联系我。
- gitlab已建好,购买过的同学我会添加到项目中,可以免费及时更新到新内容。
- 感谢支持我的同学们,在学习的过程中指出框架的问题,共同进步。
欢迎扫码关注公众号《微笑游戏》,浏览更多内容。
游戏开发中的多语言处理相关推荐
- 游戏开发中的多语言文本管理
好久没写博客了,今天趁着还在排魔兽副本的功夫上来写一篇! 由于之前没有经验,这个项目在做的时候,在多语言文本管理这方面做得很差,到了后期字符串基本成了一个无法管理的状态,随便要改点什么字都需要在一个存 ...
- 游戏开发- Python语言在游戏开发中的潜力
PYTHON 是一种面向对象的通用高级编程语言,由 GUIDO VAN ROSSUM 于 1991 年开发.自发展以来,PYTHON 已成为世界上最流行的编程语言之一.它经常在流行度调查中排名靠前-- ...
- 游戏开发中的数据表示
声明:本文内容源自腾讯游戏学院程序公开课_服务端 一.数据表示的基础 什么是数据表示? 数据是信息的载体. 数据表示是一组操作,可以描述.显示.操作信息. 数据表示的要素 IDL - 接口描述语言 I ...
- 手把手教你架构3d游戏引擎pdf_游戏开发中的算法
游戏技术这条路,可深可浅.你可以满足于完成GamePlay玩法层面的东西,你也可以满足于架构和框架设计层面的东西,你也可以醉心于了解某一游戏引擎带来的掌控感.但是,我们不该止步于此,止步与目前所见或所 ...
- 游戏开发中的专业术语
本文整理了网络/游戏/编程相关的专业术语,作为游戏开发中的辅助参考资料,后期如果遇到其他的术语还会更新. 16毫秒 / 帧速率 Frame Rate. 电子游戏使用的光栅显示器是普通电视时,图像一般每 ...
- VR硬件演进与其游戏开发中的若干注意事项
最近两年虚拟现实(Virtual Reality,简称VR)从刚刚走进公众视野到逐渐变得炙手可热,很多不同领域的IT开发者都想进入虚拟现实领域.本篇文章将首先讲解VR入门所需要学习的知识,然后从VR软 ...
- Unity3D研究院之游戏开发中的人工智能AI
很久没有写Unity3D相关的东西了,是因为这段时间我深陷一款IOS的软件开发中.不过以后我还是会回归Unity3D游戏开发的.什么语言都在用,生活与工作都挺给力的嚯嚯.今天还是打开了久违的U ...
- 游戏开发平台和编辑语言的选择
游戏开发平台和编辑语言的选择 1.游戏开发的平台 个人主机平台:Windows.Linux.Mac OC: 移动平台:iOS.Android.Windows Phone.BlackBerryOS.Sy ...
- 反射在游戏开发中的应用
文/宋忆疆 上一期专栏, 我曾提到. N E T提供了一个特性叫做反射(Reflection),其实反射并不是.NET所独有的.在这一期专栏,我想和大家讨论一下反射这个特性,在游戏开发中的应用,以及发 ...
最新文章
- jQuery+ajax中,让window.open不被拦截(转)
- [JavaWeb-XML]XML_快捷查询方式(selector选择器,XPath)
- linux运维、架构之路-HAProxy反向代理
- iTOP-4418开发板支持动态调频,AXP228电源管理,预留锂电池接口,内置充放电电路及电量计...
- combo空间禁止手动输入_国产大空间MPV新选择 上汽大通新款G10国六版本上市
- Hive大数据-Hive的安装与启动---大数据之Hive工作笔记0005
- 断点续传、秒传究竟是如何实现的?
- linux 初始化全部操作
- 图片上一张与下一张切换
- android逆向 arm,[原创]Android下ARM静态反编译逆向.(小试多玩YY协议)
- An动画基础之元件的影片剪辑动画与传统补间
- nextpolish安装_使用nextpolish对三代组装进行polish
- 微信领取淘宝内部优惠券教程免费
- 阅读笔记:Single Shot Multibox Detector(SSD)
- Excel学习日记:L23-如何计算成绩排名
- android bitmap转nv21(YUV420SP)
- golang学习之 go 读写 txt
- [深度学习] embedding 在test阶段遇到OOV怎么办
- 人脸识别5.1.3- insightface人脸识别模型arcface-Paddle
- IoT五种常见物联网协议:TCP/IP、UDP、HTTP、MQTT、CoAP初探
热门文章
- 微信小程序-消息提示框实例
- 编写一个程序,用于计算体质指数BMI,并打印结果
- ChatGPT强势加入芯片设计!不用学专业硬件描述语言了,说人话就行
- Shopee视频处理技术后台应用
- 区块链开源底层软件平台——长安链一键上链体验过程
- Trie 树实现《圣经》词频统计
- 手机变蓝牙音响_这台音箱开挂了,手机放上去自动播放音乐,还是手机支架和闹钟...
- 服装行业绣印花外发加工的跟踪方法
- Mysql基础学习Day01
- 基于javaweb的汽配商城系统(java+html+javascript+jsp+mysql)