NGUI UI Localize本地化(语言切换)
NGUI中的UI Localize顾名思义是用来实现本地化的,即游戏中的多国语言切换。
UI Localize组件可以用在UISprite和UILabel中,即可以实现文本和图片的切换
(图1)
可以看到它只有一个属性Key,Key一般是用来指明这个文本或图片应该显示什么内容(如音量),然后对应这个key会有多个语言版本(如音量/volume/소리)
那么这个Key是从哪里获得的呢?
我们需要创建一个文本txt,然后在这个文本里输入一些文字(记得保存编码方式为UF-8),如: (图2)
为了方便观察,用Excel打开 (图3)
我们不妨先来观察第一行,三个单词分别用逗号隔开,第一个是关键字KEY(和组件面板上的key是对应的),第二个单词开始是语种:中文和英语()
第二行开始,都是与第一行对应的,第一个都是用来输入到组件面板作为key值的,第二个开始是和第一行对应的语言版本(单元之间用逗号隔开,如果一个单元里是多个单词,应该用引号将这段话引起来(如图2))
要注意的是,这个文本应该命名为Localization,并且将该文本放在Resources文件夹中(这是因为它是在这个文件夹里搜索这个名字的文档)。
现在我们把这个文档命名为Localization,并且放在Resources文件夹中,我们创建一个文本UILabel,并且为之添加一个UI Localize组件: (图4)
现在我们便可以在key中填入文档中第一列中的key值(如paragraph,volume): (图5)
可以看到填入key值后,会出现对应的语言版本(如果发现中文显示不出来,注意把文档编码方式改成UF-8)。
运行看看
运行一下看看,发现它显示的是volume ,也就是Engelish对应的语言版本(如果语言列表里有English,那么English是它默认的语言,如果语言列表里没有它,就设置第一个语言为默认语言,当然可以自己设置一个脚本来控制默认语言)
值得注意的地方:如果同一个控件或者父控件里有UIInput/UIButton,那么UI Localize会把UIInput/UIButton的默认文本/默认图片设置为自己的文本/图片)
现在已经可以实现切换语言版本了,那么我们如何实现用户自己选择语言版本呢?
只需要创建一个UI Popup List,并且添加组件:Language Selection,即可控制所有的UI Localize。
运行效果如图:
此时我们发现它语言的选择顺序是从前往后的,默认语言变成了第一个中文。
如果有什么问题,欢迎指正。