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

embedded/2025/1/13 17:06:00/

开发平台: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.ppmy.cn/embedded/153608.html

相关文章

Python脚本自动创建GitHub标签

在软件开发过程中,版本控制和标签管理是非常重要的环节。本文将介绍如何使用Python脚本自动为GitHub仓库创建标签,这对于自动化部署和版本追踪非常有用。 背景 在大型项目中,我们经常需要为不同的环境(如测试环境、生产环境)创建标签。手动创建这些标签不仅耗时,而且容…

领略算法真谛:高精度

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…

蓝桥杯历届真题 # 数字诗意(C++,Java)

文章目录 题目解读[蓝桥杯 2024 省 C] 数字诗意题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路完整代码 题目解读 原题链接 [蓝桥杯 2024 省 C] 数字诗意 题目描述 在诗人的眼中,数字是生活的韵律,也是诗意的表达。 小蓝&#x…

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现

HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现 最近在学习鸿蒙开发过程中,阅读了官方文档,在之前做flutter时候,经常使用overlay,使用OverlayEntry加入到overlayState来做添加悬浮按钮、提示弹窗、加载中指示器、加载失败的t…

【Apache Paimon】-- 为什么选择将 Spark 与 Paimon 集成,解决什么问题?

目录 1. 数据湖与数据仓库的融合 2. 高性能流批一体的计算与存储 3. 数据更新与事务一致性保障 4. 高效的 Schema 演进支持 5. 降低数据存储与查询成本 6. 多引擎生态支持 总结:集成的价值 将 Apache Spark 与 Apache Paimon 集成的原因和价值主要体现在以下几个…

代码随想录算法训练营第 4 天(链表 2)| 24. 两两交换链表中的节点19.删除链表的倒数第N个节点 -

一、24. 两两交换链表中的节点 题目:24. 两两交换链表中的节点 - 力扣(LeetCode) 视频:帮你把链表细节学清楚! | LeetCode:24. 两两交换链表中的节点_哔哩哔哩_bilibili 讲解:代码随想录 dummy-…

Github 2025-01-10 Java开源项目日报Top8

根据Github Trendings的统计,今日(2025-01-10统计)共有8个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目8TypeScript项目1Kotlin项目1C++项目1JeecgBoot 企业级低代码开发平台 创建周期:2062 天开发语言:Java, Vue协议类型:Apache License…

预编译SQL

预编译SQL 预编译SQL是指在数据库应用程序中,SQL语句在执行之前已经通过某种机制(如预编译器)进行了解析、优化和准备,使得实际执行时可以直接使用优化后的执行计划,而不需要每次都重新解析和编译。这么说可能有一些抽…