如何配置Unreal Engine 5本地化面板以收集C++加载的字符串表?
解决UE5本地化面板无法收集C++加载的String Tables文本问题
核心原因
C++中直接加载的String Tables默认不会被本地化系统识别为可收集资源,因为本地化收集工具只会扫描编辑器可见的资源或明确标记为可本地化的代码元素。
具体修复步骤
1. 给String Table添加本地化标记
在C++加载String Table的代码里,要确保对应的FStringTable对象被注册到本地化系统中,并且标记为可收集:
// 假设你已经加载了String Table的Data FStringTable& MyStringTable = FStringTableRegistry::Get().AddStringTable(TEXT("MyCppStringTable"), StringTableData); // 关键:设置该String Table的元数据,标记为可本地化 MyStringTable.SetMetaData(TEXT("Localizable"), TEXT("true"));
2. 修改本地化收集配置
在项目的Localization目录下的ProjectName.locres配置文件中,添加你的C++ String Table的引用:
[Content] +StringTables=MyCppStringTable
这样本地化收集工具会明确扫描这个String Table。
3. 确保ID完全一致
检查你在代码中注册的String Table ID(比如上面的MyCppStringTable),必须和蓝图中引用的ID、配置文件里写的完全一致,注意大小写敏感。
4. 强制刷新本地化缓存
- 关闭Unreal编辑器
- 删除项目
Saved/Localization目录下的缓存文件 - 重新打开编辑器,再执行Gather Text操作
额外验证点
- 确认String Table数据里的每条条目都使用了正确的键值对格式,无语法错误
- 在蓝图中用
Get String Table Entry节点测试,确保能正确获取文本,验证String Table加载正常
内容的提问来源于stack exchange,提问作者somday_digital_nomad
相关产品推荐
相关产品推荐

