游戏开发中的多语言处理

比特云影
• 阅读 1381

前言

之前我写过一遍《数据表的使用》的文章,今天继续用文本处理为例讲解一下数据表导出工具的使用和多语言的使用方式。

编写数据表

我们先定义一个UI文本表,写好表头,添加几个测试用对本文,注意类型使用lang。
游戏开发中的多语言处理

使用工具导出

打开build.bat文件,修改数据表和项目路径,双击运行,这时候如果不出问题你的项目下就会出现对应的数据和枚举文件
游戏开发中的多语言处理
游戏开发中的多语言处理
为了减少配置数据的大小,所有数据才用数组形式,所以生成了枚举文件,使用枚举索引对应的数值。
游戏开发中的多语言处理

使用数据

  1. 添加数据到数据管理器,如果不是合并的表需要给一个key,我通常使用文件名。

游戏开发中的多语言处理

所有的数据都归XlsxDataManager负责管理,不过这个XlsxDataManager可以分模块,如果游戏中数据始终不清理,可以使用一个就行。
游戏开发中的多语言处理

  1. 将语言文件添加到语言管理器。

游戏开发中的多语言处理

语言文本管理器的处理方式与creator官方插件i18n处理方式一样,也可以处理文本替换。
游戏开发中的多语言处理

  1. 定义一个UI文本管理类

游戏开发中的多语言处理

  1. 定义UI文本组件

游戏开发中的多语言处理

  1. 在界面中拖入一个label,挂上UI文本组件,填好我们在数据表中定义的ID

游戏开发中的多语言处理

  1. 运行查看效果即可

游戏开发中的多语言处理

如何切换语言?

  1. 执行另一个脚本,这个脚本每次都会添加zh中新添加的字段,不会替换已有字段。

游戏开发中的多语言处理

  1. 如果不出问题,导出目录会多出一个语言文本,可以拿给负责翻译的人员。

游戏开发中的多语言处理
为了测试自己简单翻译一下。

  1. 更改语言为en

游戏开发中的多语言处理

  1. 运行看效果

游戏开发中的多语言处理

结语

  1. 此套方案可以用于同时支持多种语言,也可以只支持一种语言,由项目需求而定。
  2. 如果需要替换文本可以直接调用语言管理器的接口使用。

浏览更多内容,请关注微信公众号《微笑游戏》
游戏开发中的多语言处理

框架维护

  1. 购买框架的很多同学还没有收货,请尽快联系我。
  2. gitlab已建好,购买过的同学我会添加到项目中,可以免费及时更新到新内容。
  3. 感谢支持我的同学们,在学习的过程中指出框架的问题,共同进步。

游戏开发中的多语言处理

欢迎扫码关注公众号《微笑游戏》,浏览更多内容。

点赞
收藏
评论区
推荐文章
推荐学java 推荐学java
3年前
推荐学java——Spring集成MyBatis
前情回顾到本文,我们已经学习了SSM框架中的和,本文介绍如何将两者结合起来在项目中使用,这也是实际开发中常用的操作,必须掌握,下面开始撸码集成步骤第一步:创建数据库、数据表数据库各位跟随自己爱好建就行,数据表我这里是programmer,字段有这几个:id主键,varchar(64)、自动增长、不为nullname姓名,varchar
小尉迟 小尉迟
2年前
graphpad prism教程:如何使用 prism医学绘图分析软件?
1.当您启动Prism时,您将看到欢迎(文件..新建)对话框。您将看到代表八种数据表的八个选项卡。单击列选项卡。然后选择使用样本数据,并选择样本数据进行未配对t检验。笔记:要有效地使用Prism,您需要学习如何选择八种类型的数据表中的哪一种。请注意选择示例
Wesley13 Wesley13
3年前
javaweb课程信息管理系统
eclipsetomcatMySQLSQLyog1、在SQLyog中新建sqltestdb数据库,其中新建all数据表。包含四个字段:id、course、teacher、area,将id设为自动递增,否则后面递增会出错。 !(https://oscimg.oschina.net/oscnet/f2e7cacc42ce55897712f907
皕杰报表之文本数据源
皕杰报表可以使用excel表作为数据源么,当然可以了。文本数据库,指的是用文本文件编写的数据表如:language类别ID类别名称1饮料2调味品3点心4日用品5谷类/麦片
LeeFJ LeeFJ
2年前
Foxnic-Web 代码生成 (2) —— 代码生成的配置类
上一节,我们已经讲述了代码生成的基本步骤,但是对细节部分并未展开。利用FoxnicGenerator包进行代码生成的方式是多种多样的,我们这里提到的配置类这是其中一种,例如在FoxnicEAM项目里,有很多的代码生成非使用配置类来完成的。  我们优先选择配置类讲解,显然配置类有其优势。首先,配置类按数据表隔离,一数据表一模块一个配置类。其次,在配置类内部,按配置对象的不同,分别在不同的方法内进行配置代码的编写。例如,配置模型时在configModel方法内编写配置代码,配置字段时在configFields方法内编写配置代码。  那么,代码生成的配置为什么要用Java类,而不是用Json、XML或YML呢?首先,不管是Json、XML或YML、Java,都是在编辑器敲文本。那么哪一种方式敲文本是最方便的呢,自然是Java了,因为有开发工具强大的支持。
Stella981 Stella981
3年前
Python进阶_mysql_查询、事物(4)
在进行查询之前,我们要先建好关系表,并往数据表中插入些数据。为查询操作做好准备。五张关系表的创建:创建并进入数据库:mysqlCREATEDATABASEinfo;QueryOK,1rowaffected(0.00sec)mysqlUSEinfo;Data
Stella981 Stella981
3年前
Spring Boot JPA中使用@Entity和@Table
SpringBootJPA中使用@Entity和@Table本文中我们会讲解如何在SpringBootJPA中实现class和数据表格的映射。默认实现SpringBootJPA底层是用Hibernate实现的,默认情况下,数据库表格的名字是相应的class名字的首字母大写。命名的定义是通过接口ImplicitNamingSt
Wesley13 Wesley13
3年前
MySQL 修改数据表中的字段的字符编码
1、查询MySQL的版本:  SELECTVERSION();2、查询MySQL当前使用的字符集:  SHOWVARIABLESLIKE'%character%';3、查询指定数据库的指定数据表的状态信息(db_test是数据库,t_text是数据表):  SHOWTABLESTAT
Wesley13 Wesley13
3年前
ThinkPhp多语言如何实现你了解过吗?
❝最近项目比较忙,就没有怎么写文章。本文主要内容为多语言的后台是如何实现的。❞前言公司需要写一个多语言后台,以前也没做过,于是到面向百度了一下。这是用了TP框架俩年了,第一次发现框架是自带的多语言切换功能。这里着实给点一个赞。接下来我们来实现一下这个功能。一、后台实现多语言使用框架为
Wesley13 Wesley13
3年前
MySQL添加注释
在数据库设计中,我们是建议为数据库,数据表以及数据字段进行添加注释的,MySQL数据库中,字段或列的注释是用属性comment来添加。创建新表的脚本中,可在字段定义创建表脚本中添加comment属性来添加注释。示例代码如下:1createtabletest(2idintnotnulldefault
Wesley13 Wesley13
3年前
MySQL 处理重复数据
有些MySQL数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据。防止表中出现重复数据你可以在MySQL数据表中设置指定的字段为PRIMARYKEY(主键)或者UNIQUE(唯一)索引来保证数据的唯一性