UE4中的本地化文本Localization Dashboard(多语言版本匹配)

前言

UE提供了一套非常赞的本地化解决方案,为游戏开发中的多语言版本匹配提供了便利。我们只需要简单的操作和配置即可完成翻译工作,在UE的最新版本中(4.19)依旧还是试验功能,您可以在菜单的Edit–Edit Preferences–Experimental–Tools–Localization Dashboard(勾选)找到此功能。开启后可以在Window菜单中打开本地化面板。

本篇文章将展示如何将源文件中的文本进行本地化操作,和如何将资产中的文本进行本地化(UMG),我们将简单的为大家进行展示操作。

注意:如果希望在CPP中输出中文,官方要求文档格式必须是UTF格式

源文件中本地化

在源文件中(CPP文档中),我们的本地化操作需要借助FText(FText本身就是为了解决显示信息的本地化而构建)进行操作,FText的创建方式有两种

01.声明文本空间宏方式构建
//引号内容可以随意
#define LOCTEXT_NAMESPACE "UECppTest"
//放到同文件CPP的底端
#undef LOCTEXT_NAMESPACE

对于文本空间声明完毕后即可使用宏LOCTEXT进行FText构建。

 FText t1 = LOCTEXT("UECppGMB_T1", "Hello");//此代码需要在上面的声明宏内部 
02.直接使用宏NSLOCTEXT构建

FText t1 = NSLOCTEXT("UECppTest", "UECppGMB_T1", "Hello");

第二种方法较第一种可以省去空间声明,但是并没有丢弃空间功能,只是在声明时需要额外多提供一个空间名称作为参数传递给宏

 

 

资产中的文本信息

对于资产中的文本,UE给出的方案是所有UI文本信息均可被收集。在资源管理器中创建空间User Widget,双击打开资源,在编辑窗口中拖入控件Text。在Text空间细节面板中找到Content–Text,参照图一进行操作调整

图一

可以点选No,然后再切回Yes进行操作

完毕后保存你的文档,你需要做的是加入UI显示逻辑,加入源文件中FText显示信息,建议输出到屏幕上,不要输出到控制台

 

 

收集文本信息

打开本地化面板,在Window菜单项下(Localization Dashboard)

01.开启搜集选项
图二

注意:

  • 勾选选项,红框内两个收集内容需要勾选,第一项收集文档源文件,第二项收集游戏资源
  • 第一项中添加包含目录,选择到源文件目录
  • 第二项中添加包含目录,选择到内容目录

 

 

02.添加平台语言

参照图三完成平台语言添加

图三

点击Add New Culture选择需要拓展的平台语言(我添加的是Chinese)

 

03.收集工程内待翻译的文本

参照图三,点击Gather Text。弹出收集窗口,等待收集结束,点击OK,如果能看到图三中橙色部分有显示数字(上图是4个),说明收集完成

 

04.进行翻译

English属于当前语言环境无需翻译(可以点选前面的白点进行切换,切换后重新收集),我们只需要翻译其他版本,例如Chinese,点击图三中①的按钮(注意点击Chinese后面的)。参照图四进行翻译操作

图四

待翻译内容将在标签Untranslated中,将需要翻译的内容进行翻译,目前编辑器在填入翻译内容后自动会将信息保存。下面红框展示了文本的KEY和所在文件。

 

05.编译文本

点击图三中的Count Words,等待计算翻译内容,完毕后点击OK,你讲看到Chinese中的翻译进度条完成到100%,最后点击Compile Text,完成文本编译工作。

 

06.测试

如果您的电脑是中文环境,先在当前窗口中进行测试,您将发现UMG中显示英文信息,CPP中输出内容显示英文信息。

如果您使用独立敞口启动,则会发现,UMG中显示翻译信息,CPP中输出的内容显示中文信息

至此本地化工作完成了。

 

07.设置启动本地化语言

当然您可以设置启动时候的语言环境,操作参照下图开启启动高级项

图五

在开启后的窗口中加入独立窗口启动参数

-culture=”语言版本名称”

图六

启动参数一般是隐藏的,需要显示高级内容方可显示

语言版本名称可以在本地化面板中加入翻译完成后,到你的内容浏览器目录中找到他们参照路径如下

..\Content\Localization\Game

Game是我的Target名称,在Game下您将找到语言版本简称,例如中文zh,英文en

 

 

UE版本4.19.2

祝大家玩得愉快~

4 条评论

添加评论

您的电子邮箱地址不会被公开。