对于一名游戏开发者来说,本土化总是不能出现在适当的时候。不管我们是否在一开始进行设置,因为我们认为这是正确的方法,但是紧随其后游戏便遭遇了失败。或者即使游戏表现得不错,我们也必须尝试着明确如何将其放置在之后的过程。我已经将这个问题放在之后的问题集分类中:如果这是你所面对的问题,那么这便是你需要为此花钱去解决的问题。

最近我参与了一个为本土化提供资金的项目,我们的任务比想象中复杂得多。虽然存在一种简单的方法,但却没有什么好的建议,所以这个任务暂时被搁置了。是使用unity获得了整个资产渠道,但是获得游戏翻译仍然不是件简单的工作。我仍然需要完成我的资源,资产以及关于文本的所有场景搜索,然后对它们进行重组并参考一些实用内容从而给予当前语言的相关翻译。我知道自己可以做得更好,对吧?

在Transfluent我认识了Jani,对于使用一种工具而更轻松地利用unity的资产渠道获得游戏翻译这一点我们具有类似的想法。他已经通过获得一个基本的编辑翻译工具而完成了第一传。因为它遭遇了许多第二层和第三层问题,所以第一传是非常好的出发点。然而,与许多unity图形用户界面编辑窗口一样,即时模式的使用将会以某种方式倒向代码结构并倾向于创造好几千行内容的文件。所以这是推动我们吸取某些教训的一个很好的起点。

本土化的障碍:

1.提取文本并将其放在数据储存区进行翻译

2.删除任何关于文本的简单引用(在场景和预制件中)并用纯粹的脚本控制文本进行替代

3.基于某种形式用字符串替代任何串并置(“hello”+“world”)以及动态文本(如来自用户“hello there”+用户名的文本)

4.重新将储存于数据储存区的文本整合到你所选择的UI解决方法中

5.找到一种方法去使用翻译器翻译你的数据—-这通常包含进入“蓝屋”(如:不创造一款游戏)

6.检查你的游戏是否已经翻译了所有内容—-使用一种你懂的“外语”并且仍然能够用于导航至各种理想选择。例如:Facebook的“英语(盗版)

7.在发现短语未翻译时获得新的翻译内容

什么是正确的:

1.隐藏unity的所有OnGUI和GUILayout功能。这有时候看似疯狂,但这将以创造一个非常简单的方法去获得一个带有许多静态文本且能够更快速地进行翻译的UnGUI游戏告终。也许还有些功能较为模糊,就像输入内容是否应该是自动翻译的,但只要那些内容属于异常情况,这便能够帮助你轻松地翻译游戏。

2.对textmeshes,场景和预制件进行资产扫描。它将找到你的文本并对其进行翻译。我认为GameSpecificMigration中的黑名单机制可以得到完善。

3.简单的储存格式。最初,我将数据格式与专用格式绑定在一起,认为这么做会方便许多。ScriptableObjects是并未存在于场景中的基本游戏对象。它们将在运行时间中获得同意的优化,并在与别人合作时呈现出YAML合并友好型特质。确保界面就像一本简单的词典,并且在处理之后出现的各种简单任务上允许更多灵活性的出现。

4.“逆向”语言—-这是检查你的游戏的一种简单的方法,以此确保你能够翻译自己所作出的大多数决定。

5.“捕获模式”—-能够贯穿你的游戏而运行,作为一种寻找二手手游账号转让资源翻译的方法,而不是从代码中将文本复制到翻译数据库,这似乎比较不容易出错且更容易更新。你也可以选择其它方法,但这种模式能够带给你帮助。

6.编辑窗口逻辑/视图分离。拆分“视图”逻辑,就像通过“应用”逻辑呈现文本,如上传,命令翻译。基于strangeioc的中介模式,我越来越习惯这种方法。是否想要上传你自己完成的新翻译内容?当然。那么在编辑窗口呢?也要。

7.测试—-测试能够帮助我避免沉浸于某些愚蠢的内容,如脱机以及计划停运。它们将帮助我在前进的过程中核实设计和数据格式,因为如果我不能单独测试它,它便很容易崩溃。尽管我以前使用过nunitlite,不过Unity的测试工具刚刚出现,并且是一个很棒且较为完善的工具,基于Jenkins(游戏邦注:是基于Java开发的一种持续集成工具,用于监控秩序重复的工作),我能够自动操作测试,从而在代码损坏某些内容时立即获得反馈。

未知:(例如“已知的未知”)

1.基于OnLocalize支持的运行时间。显然我们需要一种方法去告知代理语言发生了改变,所以我决定使用Unity向客户发送信息。这并不是我经常做的某些事,但却是我发现其它类似的中间件成功使用过的一种模式。

2.标记化。我认为这将以积极的结果告终,而这更多地取决于KISS原则的功劳。最简单的解决方法只是隐藏字符串。格式以及在“Hello,{0}”格式中使用字符串看似是最正确的方法。事实证明,关于翻译存在许多细微差别,可能会让屏幕截图变得更有效(也有可能变得更糟糕)。

未来的工作:

1.编辑器的支持。翻译你的编辑工具EditorGUILayout和EditorGUI似乎是有效的。我认为所有需要完整的本土化编辑工具的内容在某种程度上都将连接隐藏的editorguilayout和editorgui与一个特定的TranslationUtilityInstance。我不认为这具有挑战性,但是我也不确定是否真的需要这样的内容。

2.确保文本“看起来”是合理的,并且如果翻译内容需要提前运行的话,提供给翻译器一个更棒的提示。这与在获取模式中发送屏幕截图一样简单。

3.更深入的整合—-支持在各种框架上自动换行以及规格调整。

4.支持更多UI框架—-它们带有许多相关联的不同挑战。

5.中间件整合—-整合搭配fungus和其它工具链意味着能够更轻松地创造游戏。拥有像fungus以及其它故事/游戏创造支持工具真的很酷。

6.更多资产扫描。创造更多支持自动转移的文本。思考:本土化playmaker文本。资产扫描器的设置是为了帮助解决编辑器脚本撰写的粘滞位问题,ICustomProcessors只是处理GameObjects将功能延伸向全新的脚本类型。

随着越来越多人使用工具,我们的目标便是根据新识别的用例而继续完善它。

Unity开发者如何有效地进行本土化相关推荐

  1. Unity中国张俊波:Unity的国际化、本土化、全球化 | 2019WISE超级进化者大会

    2019年7月9-10日,36氪在北京和上海同步举办"2019WISE超级进化者"大会,活动设有七大会场,关注企业发展变革路径.行业风向把握.零售行业的进击与蜕变.万亿企业服务市场 ...

  2. Unity发布四款新产品,加速本土化技术研发

    近日,在中国Unity线上技术大会上,Unity正式宣布MARS.ArtEngine.Plastic SCM以及即时游戏(Instant Game)四款全新技术产品落地中国.围绕创建和运营两大核心业务 ...

  3. 牛逼! IDEA 2020 要本土化,真的是全中文了!

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 来源:rrd.me/grt2c 前不久 JetBrain ...

  4. 【技术人快报】摩拜单车多地区现Bug+iCloud完成中国本土化落地

    2018年01月19日 星期五 [技术人快报187期] 导读:摩拜单车多地区现Bug+iCloud完成中国本土化落地 每日一句 努力的意义,不只是让你过上更好的生活,还意味着,你会因此有更多的选择,遇 ...

  5. IDEA 2020 真的是要本土化,提供简体中文了!

    前言 上个月 JetBrains 发布了 IntelliJ 平台 2020 年路线图,现在作为 2020 年规划中的另一部分,JetBrains 又发布了基于 IntelliJ 的 IDE 2020 ...

  6. 阿里云「海外战事」再升级:从出海到本土化,再到国际化

    文|智能相对论 作者|沈浪 前三! 在全球云计算赛道上,中国终于跑出了一家国际级的云服务商.根据Gartner数据,2021年阿里云以9.55%的市占率位居全球前三,其中在亚太市场的市场份额更是超过2 ...

  7. vtigercrm的本土化

    vtigercrm来源于著名的sugarcrm,在全球范围来看,sugar无疑拥有更广泛的用户群.我研究sugar社区版与vtiger有一段时间了,经过对比分析,个人觉得vtiger拥有更好的可扩展性 ...

  8. 持续交付基金会(CDF)首届中国本土化 Meetup 参会提醒

    CDF 首届本土化 meetup CDF 是 Linux 基金会下面的一个子基金会,旨在以厂商中立的身份,来推动持续交付的发展,以帮助企业更快.更安全的交付软件. 但是,受限于时区.语言等,CDF 的 ...

  9. 微疯客:将Windows Phone资源本土化

    微疯客以 "为Windows Phone中文用户提供本土化最佳App搜寻方案"为目标,除了为国内的Windows Phone 用户提供应用和游戏下载,也为开发者们提供分发平台. 微 ...

最新文章

  1. tail -f 查找关键字_C语言九种查找算法 | 总有一款适合你
  2. [深度学习TF2][RNN-NPL数据预处理] -Tokenizer函数
  3. 7.1.8860.142
  4. 测速源码_物联网之智能平衡车开发实战项目(附源码)
  5. “技术需求”与“技术成果”项目之间关联度计算模型top1
  6. 二元偏导数存在的条件_偏导数连续怎么证明
  7. rk3399_android7.1调试串口uart功能和测试是否能通讯
  8. 网传快手大幅度裁员30%
  9. 微软云服务器搭建,75分钟快速构建微软Server 2012私有云
  10. python处理word文档中表格 添加一列_Python操作word文档插入图片和表格的实例演示...
  11. 基于网络小型文件型的数据管理系统
  12. mysql 五舍六入_sql的四舍六入五成双的函数 (1)
  13. Python一行代码搞定炫酷可视化,Cufflinks值得拥有 !
  14. webdriver.Chrome.set_network_conditions:Chrome网络仿真设置。
  15. 成功解决需要Xmanager软件来处理X11转发需求
  16. 掉队的魅族还能和小米平起平坐吗?| 畅言
  17. 世界风情园成北京最大废墟
  18. Python的开源人脸识别库:离线识别率高达99.38%【源码】
  19. 5G/NR 下行抢占指示DCI foramt 2_1
  20. 《白鹿原》读后感(推荐大家细细阅读)

热门文章

  1. nacos 配置_SpringCloud Alibaba之Nacos配置中心
  2. 22-爬虫之scrapy框架分布式09
  3. mysql4.1加密_Java版Mysql4.1之前的old_password加密算法
  4. [方法提炼] 获取Android设备序列号方法
  5. BZOJ1044: [HAOI2008]木棍分割 (二分 + DP)
  6. hdu5692【dfs序】【线段树】
  7. 二维数组求最大子矩阵的和
  8. Apollo 刨析:简介
  9. cmd 发送接收邮件
  10. java中log4j的详解(转)