UE5本地化
前言
本地化一般指的是文本的本地化, UE5的本地化工具保持了UE4的风格, 当然, 文档也一如既往的渣渣, 本文对本地化进行一点的记录
使用
上图为UE5的入口,
打开以后的界面如下, 我们主要关注红色框框部分
代码文件
GatherFromTextFile针对的是代码中的FText
数据, 一般路径是项目的source目录和插件的source中
一般可以用宏NSLOCTEXT
或者LOCTEXT
, 比如
包括函数中输入参数也会被收集到
资源文件
这一部分针对的就是所有的蓝图资源文件, 包含了所有蓝图中的FText数据结构, 常见的是UMG中所有的TextBlock等空间, 蓝图中的成员变量, DataTable中的FText字段等等
收集
接下来就是收集所有需要本地化的数据, 在收集之前先添加所有需要翻译的语种,
确认我们的编辑器当前语言,为然后点击Gather Text/ 收集文本
然后执行计算字数, 等待一段时间以后, 就会出现当前语言的字数, 如上图我们的中文字数就有4150个
翻译
由于开发过程中的不确定性, 以及多员工开发的个人习惯问题, 也许我们开发的时候填写的FText变量值是中英文混杂的, 那么这里我们先要处理当前语种的翻译文件
所以非常建议, 开发之初大家就统一规范, 统一用中文或者英文, 这样后期可以减少很多翻译时间成本
打开中文翻译
我们会看到有中英文混杂的情况
首先先把所有非中文的都处理成中文
翻译过程可以在编辑器内直接点击输入, 也可以导出成*.po
文件到外面翻译, 但是吧…似乎不能用excel打开, 用其他文本工具打开的话界面清晰度不如在编辑器内
这个就仁者见仁了, 如果处理的是po文件, 那么外面翻译完了按单个语种导入回来即可
翻译完了主语言后, 点击再点击生成字数+翻译文件;
然后所有其他语种的翻译文件内对应的源都会成为主语言的显示
如果其他语言没有未翻译信息, 那么再点击一次收集文本就有了
接下来就是漫长的多语种翻译过程
切换语言
切换语言可以直接调用接口
1 | bool UKismetInternationalizationLibrary::SetCurrentCulture(const FString& Culture, const bool SaveToConfig) |
当然为了方便, 可以自己封装一个接口, 用枚举来选择还是更方便一点
游戏内测试切换语言需要使用standalone模式, 或者打包出来测试,否则结果不一定正确