原创文章,转载请注明出处。
点击观看上一篇《UE4 Slate六 SlateUI在Runtime结合我们的GamePlay使用》
点击观看下一篇《UE4 Slate八 SlateUI使用总结》
虚幻引擎 SlateUI介绍
1>前言
当我们选择编辑器语言的时候,引擎会变成英文和中文或者其他语言,我们前面写的编辑器插件中的文字也能跟着变吗?应该怎么做呢?
2>怎么去实现本地化
2.1>引擎实现本地化原理
首先我们要去了解虚幻是怎么实现的。
原理:UE4是根据LOCTEXT或者NSLOCTEXT 将这两个里面的LOCTEXT(“key”, “value”), 找到这个key,然后根据不同语言,将我们的Value替换掉(在编辑器中的这个工具,下图)。
LOCTEXT用法
前后必须要加LOCTEXT_NAMESPACE 和LOCTEXT_NAMESPACE定义一个作用域,
代表下面的字符串都在这里作用域里头,引擎好通过这个域去搜索所有的LOCTEXT
#define LOCTEXT_NAMESPACE "SlateMain"
.Text(LOCTEXT("SMainSlate_ButtonSlateAnimation_Text3333", "测试Slate动画"))
#undef LOCTEXT_NAMESPACE
NSLOCTEXT用法
不用加LOCTEXT_NAMESPACE 和LOCTEXT_NAMESPACE。但是三个参数,第一个也是作用域
.Text(LOCTEXT("SlateMain", "SMainSlate_ButtonSlateAnimation_Text3333", "测试Slate动画"))
在编辑器中的这个工具中做文本不同语言的替换,下图
2.2>具体操作步骤
我们前面的SlateMain.cpp中已经有很多的LOCTEXT了,比如下面的这句。都是UI上的文本的描述
LOCTEXT("SMainSlate_ButtonSlateAnimation_Text3333", "测试Slate动画"))
2.2.1>第1步, 打开引擎的本地化替换界面
我们直接打开引擎,找到Window->Localization Dashboard,直接打开。怎么打开上面的2.1的Gif图就是了。
2.2.1>第2步,指定引擎要去搜索的文件目录,让引擎去找到指定目录里面的所有LOCTEXT和NSLOCTEXT,看下面的操作gif图
具体的步骤拆分
1>选择要过滤的属性
2>选择收集方式
是代码的话就选 从文本文件收集
是蓝图等资源的的话就选 从包收集
这种我还没试过从元数据收集 ,有试过的同学可以评论一下
3>收集方式以代码文件为例,加我们的代码目录进去
4>点击 收集文本
5>将我们代码中文本分别翻译成想翻译的中文和英文,此处我们以翻译英文为例子
6>点击第5步之后的界面,具体做翻译,别忘了保存
7>点击 计算字数
8>点击 编译文本
2.3>最终效果
点击观看上一篇《UE4 Slate六 SlateUI在Runtime结合我们的GamePlay使用》
点击观看下一篇《UE4 Slate八 SlateUI使用总结》
谢谢,创作不易,大侠请留步… 动起可爱的双手,来个赞再走呗 <( ̄︶ ̄)>