NGUI本地化系统应用

前面是文字,图片在文章后面统一给出。。。不习惯的话,就直接看图片吧,纯属无奈之举尴尬

3.5  为游戏菜单添加本地化系统——语言选择

直到此时,游戏主菜单的界面已经基本上完成了,所欠缺的不过是本节将要添加的语言选择设置。它只是一个弹出列表控件,却掌管着游戏中文本信息切换的功能,如图3-所示。

图3-  语言选择设置

3.5.1  添加本地化文件

要添加本地化的系统,就一定需要添加本地化的文件,这类文本文件的后缀名是.txt,并且每种语言都需要一个.txt文件。本节要添加的游戏示例,提供给了玩家对两种语言的选择,分别是Chinese和English,因此要为Unity的游戏项目导入两个文本文件:Chinese.txt和English.txt,如图3-所示。

图3-  在Project视图里查看导入的两个文本文件

提示:至于文本内容的编辑,读者可以选择自己喜欢的文本编辑器,而本节将使用Unity自带的编辑器MonoDevelop。

3.5.2  添加本地化组件

要为游戏主菜单界面添加本地化系统,还需要添加一个本地化组件,即为Hierarchy视图里的GameManager添加Localization(Script)组件,方法是单击Component|NGUI|Internal|Localization命令,并设置此组件的下列属性,如图3-所示。

q  Starting Language:English;

q  Element 0:Chinese;

q  Element 1:English;

图3-  Localization(Script)组件属性设置

3.5.3  添加语言选择功能

要在游戏主菜单界面上添加的语言选择功能,读者已经在本节开头的部分见过了,本小节就来切实的完成这一界面元素的添加,具体的操作步骤如下:

(1)选中Difficulty的子对象Popup,完成下列设置:

q  复选UIPopup list(Script)组件的Localized属性;

q  将Popup的子对象Label,重命名为CurrentDifficulty;

(2)拷贝Difficulty对象,重命名为Language,选中它的子对象Background,完成下列设置:

q  UIAnchor(Script)组件Pixel Offset:(420,-90);

(3)选中Language子对象Label,完成下列设置:

q  Label中的文本:[AAFFFF]Language

(4)选中Language子对象Popup,完成下列UIPopup List(Script)组件属性的设置:

q  Options设置,如图3-所示。

图3-  Options属性设置

q  Position:Below;

q  复选Localized属性;

步骤(2)、(3)和(4)的操作效果如图3-所示。即在游戏主菜单右侧靠下的位置处,添加了语言选择功能。

图3-  步骤(2)、(3)和(4)的操作效果展示

(5)修改Popup的子对象Label的名称为CurrentLanguage。并为它添加Language Selection(Script)组件,方法是单击Component|NGUI|Interaction|LanguageSelection命令,此组件下没有任何属性,如图3-所示,却是将玩家的操作付诸实现的,连接本地化系统的枢纽。

图3-  Language Selection(Script)组件

3.5.4  本地化的实现——修改Label的文本内容

本地化全部UI界面的工作量比较大,本小节先以本地化“MAIN MENU”为例,然后再说明批量操作的方法。具体的操作步骤如下:

(1)选择Title子对象Label,为其添加UILocalize(Script)组件,方法是单击Component|NGUI|UI|Localize命令,并设置此组件的下列属性,如图3-所示。

q  Key:MainMenu;

图3-  UILocalize(Script)组件属性设置

q  编辑English.txt文本文件的内容,如图3-所示。

图3-  编辑English.txt文本文件的内容

q  编辑Chinese.txt文本文件的内容,如图3-所示。

图3-  编辑Chinese.txt文本文件的内容

提示:直接使用中文的话,Unity的Game视图上不会输出任何文本,因此这里使用了汉语拼音。

(2)运行游戏,默认使用的是英语,将其切换为汉语拼音,效果如图3-所示。

图3-  左边是英语,右边是汉语拼音,即本地化的效果展示

(3)接下来读者可以使用同样的方法,修改UI里所有剩余的Label文本内容。即先为其添加UILocalize(Script)组件,然后设置key属性,最后将key添加到English.txt和Chinese.txt中即可。这样的操作,工作量确实很大,下面说明批量操作的方法。

(4)在Hierarchy视图的搜索栏里输入“Label”,即可检索到当前Hierarchy视图里的所有label控件,无论它被修改成了什么名字,如图3-所示。

图3-  在Hierarchy视图检索所有label控件

(5)选中除指定为预置资源以外的所有Label,然后单击Component|NGUI|UI|Localize命令,即可为所有被选中的Label对象添加UILocalize(Script)组件。

提示:做演示时,已经为Title的子对象Label添加了UILocalize(Script)组件,步骤(5)的操作会令Label重复添加UILocalize(Script)组件,因此需要将其移除。

(6)接下来读者就该为所有Label的UILocalize(Script)组件属性key设置值,然后在English.txt和Chinese.txt文本中添加对应的文本内容即可。如图3-所示,是Chinese.txt文本中的所有内容;如图3-所示,是English.txt文本中的所有内容。

图3-  Chinese.txt文本文件中的所有内容

提示:17~19行的内容应该在一行内书写,截图的时候考虑到内容太长不方便,所以才将其分成多行。

图3-  English.txt文本文件中的所有内容

提示:17~19行同样应该写成一行。

q  当需要本地化的内容在游戏UI中,是以多行显示时,读者应该使用“\n”表示换行,如图3-所示。

图3-  本地化多行显示的文本

q  对于Popup控件,前面的操作复选了其UIPopup List(Script)组件里的Localzed属性,因此弹出列表各选项文本本地化时,Key应该与UIPopup List(Script)组件里的Options属性一致,如图3-所示。

图3-  本地化弹出列表各选项的文本

q  对于在Project视图里,被指定为预置资源的Label也需要完成本地化,方法与在Hierarchy视图里为各游戏对象本地化一致,如图3-所示。

图3-  本地化被指定为预置资源的对象

(7)完成本地化的所有设置以后,就可以运行游戏了。本地化的语言是英语时,效果如图3-所示;本地化的语言是汉语拼音时,效果如图3-所示。

图3-  英语的本地化效果展示

图3-  汉语拼音的本地化效果展示

提示:Unity会自动记录玩家在关闭游戏前,对本地化语言的选择,然后当玩家再次运行同一个游戏的时候,就直接使用记录的本地化语言。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是目前Unity最完整的本地化系统。 支持 Unity UI,Unity 2D,TextMesh Pro,NGUI,2D ToolKit,SVG导入器,标准组件 本地化 图像,文本,声音,字体,精灵,地图集,预制件,TextMeshes,下拉列表等。 自动翻译 内置支持Google Translator,可自动将所有标签本地化为任何语言。 Google Spreadsheets和CSV文件 链接外部电子表格,即使在游戏发布后,也会自动下载任何更改。 检测并修复错误 解析场景以查找丢失或未使用的翻译以及重复或类似的术语。 子对象翻译 设置辅助术语不仅可以更改文本和图像,还可以更改每种语言使用的字体和地图集。 回调和参数 可以修改翻译以使用语法语法插入分数,名称和游戏变量。 复数 每种语言的内置规则涵盖那些只需要单数/复数形式的规则,直到那些使用6种变体的规则。 从右到左语言 正确呈现RTL语言,支持换行和对齐。 保存内存 仅使用您正在使用的字符创建字体。链接您的AssetBundles以添加更多本地化内容。 简单高效 在一个位置编辑和预览所有翻译,然后在运行时仅加载当前语言。使用快速查找来访问它。 重复使用翻译 设置文本自动显示为大写,小写,上限,标题大小等。 在游戏动态翻译 Easy API在运行时翻译聊天消息和其他动态文本 应用程序名称和商店本地化 翻译游戏名称所有语言,并在Android / IOS商店中显示您的游戏支持哪些语言 简单但功能强大的编辑器 直观的检查员允许您预览,编辑,分类,创建,解析和过滤甚至大型来源。 编译时间检查 将翻译转换为脚本常量,以避免在访问代码时使用Typos。 Playmaker 可以 快速,轻松,强大地访问本地元素和交换语言并与之交互的几种操作?没问题! 立即获取I2本地化,让您的游戏为世界做好准备!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值