61 lines
1.4 KiB
Markdown
61 lines
1.4 KiB
Markdown
|
|
---
|
|||
|
|
title: UMG本地化
|
|||
|
|
date: 2026-05-03 00:00:00
|
|||
|
|
excerpt: 平台感知的多语言文本系统(平台后缀、语言 ID)
|
|||
|
|
tags:
|
|||
|
|
- ARC
|
|||
|
|
- UI
|
|||
|
|
- UMG
|
|||
|
|
- Localization
|
|||
|
|
rating: ⭐
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# UMG 本地化
|
|||
|
|
|
|||
|
|
返回 [[UI]]
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
ARC 引擎为 UMG 文本系统添加了平台感知的本地化机制,允许同一文本 ID 在不同平台上显示不同内容(例如按钮提示文本因平台不同而变化)。
|
|||
|
|
|
|||
|
|
## 平台后缀系统
|
|||
|
|
|
|||
|
|
文本 ID 查找时自动追加平台后缀:
|
|||
|
|
|
|||
|
|
| 平台 | 后缀 |
|
|||
|
|
|------|------|
|
|||
|
|
| PS5 | `_PS5` |
|
|||
|
|
| Xbox Series X | `_XSX` |
|
|||
|
|
| 其他 | 无后缀(使用默认文本) |
|
|||
|
|
|
|||
|
|
查找顺序:
|
|||
|
|
1. 先查 `TextID_PS5`(或 `_XSX`)
|
|||
|
|
2. 找不到则回退到 `TextID`
|
|||
|
|
|
|||
|
|
## 语言 ID
|
|||
|
|
|
|||
|
|
新增 CVar `sg_REDLanguageID`,允许运行时切换语言而不依赖系统语言设置:
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
static TAutoConsoleVariable<int32> CVarREDLanguageID(
|
|||
|
|
TEXT("sg.REDLanguageID"),
|
|||
|
|
0,
|
|||
|
|
TEXT("Override language ID for RED localization"));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 自定义 L10N 加载
|
|||
|
|
|
|||
|
|
`Source/Runtime/Core/` 中的本地化文件加载逻辑支持自定义 L10N 目录。
|
|||
|
|
|
|||
|
|
## 兼容性
|
|||
|
|
|
|||
|
|
`UOldRichTextBlockDecorator` 兼容层确保旧版富文本格式在新系统中正常工作。
|
|||
|
|
|
|||
|
|
## 修改文件列表
|
|||
|
|
|
|||
|
|
涉及 `Source/Runtime/UMG/` 下约 12 个文件,主要覆盖:
|
|||
|
|
- `TextBlock` 相关 — 平台后缀查找
|
|||
|
|
- `TextWidgetTypes` — 垂直对齐(与 [[Slate扩展]] 配合)
|
|||
|
|
- `RichTextBlockDecorator` — 兼容层
|
|||
|
|
- `WidgetComponent` — 修改
|