首页 > 其他分享 >cocos creator教程:框架 - 多语言

cocos creator教程:框架 - 多语言

时间:2023-01-02 23:55:54浏览次数:40  
标签:cocos 语言 language creator 配置 教程 模块 类型 节点

【muzzik 教程】:框架 - 多语言

此处仅谈思想,代码后续会发布

多语言需要解决的问题

  • 文本、图片不同语言之间的动态切换

  • 多状态节点(不同语言间节点属性可能不同、如位置、缩放、layout 排版等...)

  • http 远程配置

  • 缺少配置可由动态翻译替换

  • 可导出表格方便翻译人员配置

语言配置

# 配置文件类型

一般分为 json 和 ts 两种类型,为了类型提示及加载方式这里选择为 ts 文件,ts 文件应该提供多语言键的提示,避免动态使用时多语言键错误 vscode 无提示

# 语言配置单位

  • 项目

以项目配置的多语言可以轻松的实现 热更、远程配置、导表
但是灵活性不足,如果模块删除后其内使用的配置很难清理,容易形成配置垃圾

  • bundle

和项目配置一致

  • 模块

远程配置、导表都被分割为了单个模块,不能一起配置,比较麻烦
但灵活性较好,不易形成配置垃圾

这里我选择的配置实现方式是模块类型,因为我自己当前项目使用的是 bundle 类型,中小项目,但也感觉堆积了很多配置垃圾,无从清理...

使用方式

  1. 顶层配置应该由 全局配置、bundle配置 组成,这两种配置都可以作为公共配置使用
  2. 模块使用的配置最好都由自己包含,不要去依赖除公共配置外的模块配置、否则依赖配置的变更会影响到当前模块

功能讲解

1. 文本、图片不同语言之间的动态切换

分为两个配置,文本和图片多语言组件

  • 管理类:language_manage
  • 文本:language_label
  • 图片:language_texture
  • 基类:language_base

language_label 和 language_texture 都继承于 language_base

# 职责

language_manage

  • 多语言配置的添加、删除、获取

  • 提供语言切换接口并发送事件

language_base

  • 提供配置类型选择

配置类型也就是模块类型配置的标识,可以用模块名来实现,但是必须 保证不能重复
考虑到模块众多、所以必须提供模糊搜索功能

  • 提供多语言键的选择
    多语言文本、图片的键

language_label

  • 提供文本参数的配置,多语言文本参数必须确保的信息有:参数下标(不同语言的语序可能不同)、标记(用于识别参数范围),例如 {0}、$0{}$ 为标记,0 则为参数下标

  • 动态翻译:不存在对应语言键的数据时使用,国内可以使用百度、有道,国外可以使用谷歌、必应

  • 内容更新:语言切换事件、onLoad(初始化)、配置类型变更、多语言键变更

language_texture

  • 内容更新:语言切换事件、onLoad(初始化)、配置类型变更、多语言键变更

2. 多状态节点

不同的语言间,美术效果图上多语言的展示位置、顺序可能会不一致,所以需要多状态节点用于展示

# 实现方式

我们需要尽可能的实现兼容、避免一次版本升级导致故障、所以保存属性数据的方式直接排除、直接使用节点树存在的节点数据、这意味着 n 个状态需要 n 个节点

# 职责

language_node

  • 提供属性面板节点列表,列表项需要包含语言类型、节点两个属性

  • 内容更新:语言切换事件、onLoad(初始化)

  • 提供公共属性 state_node (状态节点)用于外部使用


3. 配置更新

配置一般通过热更完成、但也可通过 http 远程添加配置来实现

# 导表方式

使用插件使用,下面是功能描述

  • 导出单张表,所有配置合并
  • 导出模块表,每个配置单元(module)生成一张表
  • 导入单张表、模块表

标签:cocos,语言,language,creator,配置,教程,模块,类型,节点
From: https://www.cnblogs.com/muzzik/p/17020877.html

相关文章

  • Metrics 入门教程
    Metrics,谷歌翻译就是度量的意思。当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。举个栗子,一个图片压缩服务:每秒钟的请求数是多少(TPS)?平均每个请求处理的时......
  • Linux下安装Anaconda3,这个教程一定要看!
    前言大家好,我是爱写Bug的麦洛。由于工作需要,要为客户搭建Python开发环境。作为从来没有接触过Python的小白,为了完成任务,也是破费周折,请教了身边做Python的朋友,发现大家都是......
  • 吐血整理!10 个机器学习教程汇总,爱可可推荐!
    今天给大家推荐10个机器学习课程清单,含课程视频。这份教程是由一名来自硅谷的计算机科学家ChipHuyen。ChipHuyen是毕业于斯坦福大学计算机科学理学学士和硕士学位,在那......
  • 开源!《AI 算法工程师手册》中文教程正式发布!
    最近红色石头在浏览网页的时候,偶然发现一份非常不错的AI资源,就是这本《AI算法工程师手册》。本文将给大家推荐这本优秀教材,并作详细的介绍。这本《AI算法工程师手册》......
  • 干货 | 126 篇 AI 原创文章精选(ML、DL、资源、教程)
    一年多来,公众号【AI有道】已经发布了140+的原创文章了。内容涉及林轩田机器学习课程笔记、吴恩达deeplearning.ai课程笔记、机器学习、深度学习、笔试面试题、资源教程......
  • AutoCAD Civil3D 2023安装图文教程
    ​Civil3D2023简单介绍Civil3D设计软件是土木工程师的首选软件,也是民用大众领域的综合解决方案,同时Civil3D提供了AutoCAD和AutoCADMap3D的功能,该软件使用基于模型的......
  • Python类的封装教程
    一、什么是封装封装的本身意思其实就和闭包函数一样,就是把一个函数和变量全都包在一起,但其实这样的说法不是很具体,就是一种很片面的解释二、为什么要封装封装数据的主要......
  • 收藏&下载 | 最全的NumPy 教程,没有之一
    译者:飞龙   https://www.tutorialspoint.com/numpy/index.htm友情提示:本文较长,是教程的一部分,值得收藏,文末提供下载方式哦!觉得内容精彩一定要点一下“好看”哦!NumPy-......
  • CentOS7 搭建k8s环境教程
    一.为什么是k8sv1.16.0?最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadminit那一步执行后,报了很多错,如:nodexxxnotfound等。centos7都重装了几次,还是无法解决。用......
  • spring boot——spring boot的基本配置——spring boot整合mybatis——教程
                  第二步——修改pom.xml文件:    pom文件:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://mave......