NGUI的本地化

1.什么是多语言本地化?

所谓的本地化,可以理解为游戏的多语言切换管理,因为我们的游戏可能不仅仅针对我们自己的国家,还有可能出口到国外面对不同语言的地区,我们希望玩家能够根据自己的母语来选择语言,例如美国的可以选择英文进行游戏,中国玩家选择简体中文进行游戏,这就是本地化。本地化并不是指制作多个游戏包发往不同的地方,而是所有人使用的都是同一个游戏,然后可以在里面自由的选择语言种类。目前NGUI自带的本地化系统支持所有的UILabel的文本进行语言切换。

2.NGUI本地化的原理

NGUI的本地化系统,需要用到3个东西:语言选择组件,文本读取组件,语言配置文件。

(1)LanguageSelection组件 这个组件的路径为AddComponent ->NGUI->Interaction->LanguageSelection 这个组件附加到一个UI控件上之后,会自动在该控件上生成一个UIPopuplist组件用来选择语言,当运行游戏时,这个PopupList会被LanguageSelection组件应用,自动读取语言配置文件,从而变成一个语言选择的PopupList.一个语言选择控件的结构必须包含,一个Sprite,一个BoxCollider,一个LanguageSelection,一个PopuoList(会自动生成),需要注意的是,如果UIPopupList和LanguageSelection组件一起存在于控件上,那么这个PopupList控件将会强制变成一个语言选择的下拉菜单。也就是说,这个情况下UIpopupList中录入的各种选择都将无效,在游戏运行时,里面的选项会自动的变成语言配置文件中的语言选项。

(2)UILocalize组件 任何一个需要语言切换的UIlabel,都必须附加上这个组件,这个组件必须要填入一个key,这个key就是这个label在不同语言中的索引,我们会有一个语言配置文件它的结构应该是这样的。

然后在UILabel控件上挂载上UILocalize之后,填入Key,例如填入Key为Label2,那么当切换到中文时,这个UILabel会根据Key从刚才的表格中寻找显示的值,会显示"这是一个文本";切换到英文之后会显示为"This is a Label"

(3)Localization.txt 文本文件

这个文本文件就是刚才提到的语言配置文件,NGUI中有一个供调用的文本文件,我们只需要修改它即可,路径是:Assets/NGUI/Examples/Resources/Localization.注意,这是一个txt文件格式必须是用逗号隔开的。 这个我们可以很清晰的看到这个文本文档其实就是一个表格格式,凡是带有UILacolize组件的UILabel都将会从语言配置文件中,根据Key值寻找当前选择的语言模式下应该显示的文本内容

然后在场景中创建一个Sprite控件,为它Attach一个BoxCollider组件,并且为它添加一个LanguageSelection组件,然后在自动生成的PopupList组件中设置好Background和Highlight的图片,我们在这个PopupList物体下创建一个Label子物体,并拖动到PopupList的OnValueChange事件回调中,让它实时显示这个 PopupList当前选中的选项,PopupList的选项内容不需要录入,因为它在游戏运行时会自动被LanguageSelection组件设置好。

results matching ""

    No results matching ""