【教程】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 组件驱动与绑定。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值