UE4文本简单本地化

ue4这个本地化系统真是没找到啥傻瓜教程,搜搜改改差不多整明白了,搁着记一下怕忘
仅限文本(Text)的本地化,资源的本地化再研究

1.FText关联StringTable

需要把所有需要本地化的FText文本设置本地化Localizable为Yes,并关联StringTable

1.1建立StringTable

StringTable本质为一个object存储了一个内部字符串表,建立它的目的便于我们方便分类管理需要本地化的字符串(在内容浏览那右键建立即可)
在这里插入图片描述
表内对应key及SourceString,key设置为该字符易理解的描述即可,字符短和SourceString设置一样即可,注意key不能加空格
(Key居然可以设置中文,一般来说写上对这个字符易懂的描述吧,给外包翻译能看懂)Key居然可以设置中文,一般来说写上对这个字符易懂的描述吧,给外包翻译能看懂

注意在StringTable中增添字符串的操作,如果显示文本需修改直接修改SourceString即可,key要修改只能删除重建,如果已经对该key有引用,但在StringTable中删除,此字符会变成missing string table entry显示,所以如果不确定该字符串不是在多个地方在用,不要进行删除操作
在这里插入图片描述
简单来说,需要本地化的文本都需要一条条在这StringTable建好,在用到的时候关联选中它
StringTable可以随便建立多个,方便文本的分类管理

1.2需要本地化的字符类型需为FText类型,选中关联

FText类型数据后面会多个小三角,点击进入该字符本地化设置在这里插入图片描述
如不需本地化的Text,直接Localizable选no即可,如数字符号等

需要本地化的Text,Localizable选yes,默认会随机分配一个key
在这里插入图片描述

我们需选取NameSpace及key,namespace选取建立好的StringTable,选取对应key后即会显示该key对应的SourceString,此例为建立了一个SettingStringTable存放Setting相关的需要本地化的字符串
在这里插入图片描述

1.3如果Text是即时变化或绑定变量,需在传入参数时对Text本地化即可

比如这里直接选好stringtable

创建新字符时如不确定是否已经在StringTable里创建的,为避免重复创建,点击window-localization dashboard,再点击English的Edit,然后可以search现有本地化表的所有字符,若搜索到已创建的就可以知道它在哪个StringTable中创建的,直接选取即可(需要在第二大步中收集了Text才能看的到,方法有点笨,没找到啥好办法)
在这里插入图片描述
在这里插入图片描述

4.comboBox的使用,

使用comboBox下拉选择控件时,需要对选项本地化用ComboBox(Text),不需要则用ComboBox(String)
在这里插入图片描述

ComboBox(String):
在这里插入图片描述

ComboBox(Text):
在这里插入图片描述

5.enum的本地化

这能直接选
Enum在蓝图创建时可以直接选取本地化,displayname和descriptioon都是FText,可用下面方式直接显示于UI,具备本地化功能
在这里插入图片描述

6.尽量减少switch string或string==***的操作

这个文本如果是被本地化的,这么一玩切换语言的时候文本就变了,逻辑跑不通
在这里插入图片描述

2.用本地化工具收集StringTable文本

2.1建立Target

点击window-localization dashboard,在这个界面编辑我断开了项目的版本控制,感觉连上版本控制各种报错,不行先断了(svn啥的)。然后建立了一个名叫Game的Target,目的是收集所有StringTable文本。
这里给出俩办法,第一个我所有StringTable都建在项目的Content/StringTable文件夹下,那么可根据路径收集,填上路径收集这个文件夹
第二个根据Collections收集,把要收集的StringTable放到同一个Collections下,这样就可以不限定放在哪了,Collections就是右键文件然后有个manage Collections,不会用的搜搜
在这里插入图片描述

2.2收集

默认起始Culture我这里是英文,然后按需加就行
在这里插入图片描述
设置好了点Gather Text,要收集一会,完事了英文就应该收集好了,别的文直接在这编辑或者导出po文件给外包再导回来。有变动的时候记者重新收集,就是再点Gather Text,然后还需要Compile Text,要不切换语言不生效。

3.在UMG中调试,建立语言更改设置

在这里插入图片描述
差不多就是这样SetCurrentLanguage是引擎方法,后边那个是自己写的,肯定需要建一个GameSaving保存语言设置。Culture需要传入当前使用文化,一般是俩字母,具体语言是啥在上边Add New Culture能看,Get Default Locale可以获取打包后运行时机器的默认语言设置,可在初始化时用。

在UMG的这个地方可以不运行就更改语言设置,方便ui上看语言切换后的界面效果
在这里插入图片描述

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值