当前位置: 首页 > article >正文

【教程】Unity 本地化多语种 | Localization 工具组

开发平台:Unity 6.0
编程平台:Visual Studio 2022
编程语言:CSharp 6.0
工具包类:Localization

一、前言


  本地化多语言类型是软件面向国际化所必须的功能项。Unity 在 2022 版本后推出 Localization 工具包,以降低多语言门槛。本文重点围绕多语言实现作记录与补充。

二、环境准备


  1. 在 Package Manager 中下载安装 Location 工具包 | 关联标签 Unity Registry
  2. 在 Project Setting / Localication 分区中,为项目添加语种信息文件 | 按钮 Add Locale
    在这里插入图片描述
    • 【补充】默认选择语种 Chinese (Simplifeld) - 简体中文 + English - 英文。其余视情况而定。
    • 【补充】关于 Add Custom Locale:这是罕见语种的创建引用。基本上很难用到,例如外星文明的文字。
    • 【操作】在确认语种范围后,点击 “Add Localers” 存储文件地址,一般的 Assets/StreamingAssetsAsset 目录下即可。
  3. 在 Project Setting / Localization 分区中,为 Specific Locale Selector 与 Project Local Identifier 绑定默认语言。
    在这里插入图片描述

三、创建词条


  1. 前往 “Window / Asset Manager / Localization Tables” 选项打开语种编辑窗口。如下图:
    在这里插入图片描述
  2. 创建 New Table 并为其命名与添加词条。如上所示,添加了 Author - 作者 - Author 的词条。
    • 需注意。为更好的引用与释义,建议使用 英译 作为 Key 便捷理解。

四、添加组件


  1. 为文本组件(UnityEngine.UI TextMeshProUGUI)添加 Localization String Event 组件。
  2. 为依赖信息绑定 语种 Key 信息与语种文件。并建立 Text 文本更新事件订阅机制。
    在这里插入图片描述

运行后,通过 Game 编辑视窗切换检查语种变化。

五、关于程序化绑定、订阅示例代码


5.1 订阅文本变化事件

LocalizeStringEvent StringEvent;

void Start() {
	StringEvent.OnUpdateString.AddListener(OnStringUpdated);
}

5.2 本地化加载

public IEnumerator Start() {

	yield return LocalizationSettings.InitializationOperation;
	
	LocalizationSettings.SelectedLocal =  LocalizationSettings.AvailableLocales.GetLocale(Application.systemLanguage);
}

该加载方式默认以 “本地系统语言” 为首选项。

LocalizationSettings.SelectedLocale = 
			LocalizationSettings.AvailableLocales.Locales[0];

该加载方式以语言队列组位序最为选择项。

LocalizationSettings.SelectedLocale = 
			LocalizationSettings.AvailableLocales.GetLocale(new UnityEngine.Localization.LocaleIdentifier("en"));

该加载方式以 语言缩写标准 作为选择项

5.3 关于 Sprite | Icon 图标


操作方式与 String 流程一致。不同于在编辑面板下,选择 Type = Asset Table Collection 作为 新 Table 存在。并使用 Localization Sprite Event 组件驱动与绑定。

在这里插入图片描述


http://www.kler.cn/a/500495.html

相关文章:

  • PHP 循环控制结构深度剖析:从基础到实战应用
  • 城市生命线安全综合监管平台
  • 《深度学习模型在鸿蒙分布式框架下的跨设备高效之旅》
  • linux网络 | https前置知识 | 数据加密与解密、数据摘要
  • 下载导出Tomcat上的excle文档,浏览器上显示下载
  • 【PDF转Word】 PDF在线转word文档 好用!优质网站资源推荐
  • Java 实现 Elasticsearch 查询当前索引全部数据
  • OOM排查思路
  • 蓝桥杯历届真题 #食堂(C++,Java)
  • 探讨人工智能机器人学之路径规划与导航:A*算法、Dijkstra算法等路径规划方法
  • 《零基础Go语言算法实战》【题目 2-12】Go 语言接口的工作原理
  • 冒泡排序基础与实现
  • 微服务的配置共享
  • C# OpenCV机器视觉:波形相似度
  • 深入解析 Spring AI 系列:剖析OpenAI接口接入组件
  • 3 前端: Web开发相关概念 、HTML语法、CSS语法
  • 解锁人工智能的核心:人工神经网络全面解析
  • 计算机网络——网络层-IP地址
  • 初学stm32 --- ADC模拟/数字转换器工作原理
  • ubuntu设置开机无需输入密码自启动todesk,内网穿透natapp
  • 【芯片封测学习专栏 -- 什么是 Chiplet 技术】
  • 数据结构与算--堆实现线段树
  • 专题 - STM32
  • AI在零售行业中的应用:提升顾客体验与运营效率
  • FastApi Swagger 序列化问题