unity项目多语言本地化讲解(一)
关于多语言的问题,想必大家也多少有些了解 无非就是语言的切换,但是在实际应用中并没有我们想象的那么简单,需要一套完整的流程,并且还得方便后期的维护。所以这里先讲解一下多语言的思路,下一期再讲具体的使用。
1. 首先就是关于文字方面的处理 我们的项目在刚开始开发的时候可能并没有考虑多语言的情况,所以我们的代码中可能会存在很多的中文,这是一个地方,还有就是我们的预制体中的Text组件中的中文,以及我们的配置表中的中文。
总结一下:
代码中的中文
预制体中的中文
配置表中的中文
所以 我们需要做一个工具 将这些里面的中文全部提取出来,然后用中文当key 存在一个表里面 然后把表拿去翻译 最后会得到 不同的语言的表格 这就是我们的语言包了
然后我们需要在一开始将我们的语言包存在一个字典中 重写我们的Text组件代码 在渲染的时候把我们的中文当参数传进去 通过从我们的语言包字典里去取对应的语言的文字 如果取到对应的值后 我们将它渲染在我们的界面上(这里并没有赋值 我们的文本框里一直是中文 我们只修改的是渲染出来的文字 内存中还是中文)
2. 关于带文字的图片
图片的问题分两部分 (不同语言的图分不同的路径)
首先是动态加载的图片:我们只要统一加载图片的方法 在传入加载图片的路径的时候根据语言区分一下路径就行了|
预制体中的图片:这就需要重写Image组件 然后给image组件指定一个图片的默认路径 然后在加载预制体的时候默认会去根据语言加载默认路径的图。
关于文本超框的问题 尽量从翻译上解决 不行就动态大小字体 ,最不济的方法就是特殊处理。
关于特效方面,尽量也是用换图的方法,或者说使用世界化的效果 就不用处理了 实在不济就特殊处理。例如王者荣耀的一血 提示 就不是中文的 所以 大家应该懂我意思吧
我们切换语言时只需要对我们的预制体中的图片和文本重新赋值一下就行了
下一期 我们讲一讲具体的多语言使用 以及后期维护等等
有写的不好的地方和有疑问的地方还请多多指出。
unity项目多语言本地化讲解(一)相关推荐
- unity 安卓应用名称多语言本地化
转载自 http://blog.csdn.net/egostudio/article/details/50961729 unity开发安卓app的时候,想要实现应用名称本地化,但是PlayerSett ...
- unity安卓应用名称多语言本地化
unity开发安卓app的时候,想要实现应用名称本地化,但是PlayerSettings里面只能填写一个Product Name 所以只好借助安卓的方式实现,研究了下其实还是挺方便的,步骤如下: 在u ...
- iOS - 实现语言本地化/国际化
实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家 ...
- 3分钟实现iOS语言本地化/国际化(图文详解)
为什么80%的码农都做不了架构师?>>> 原文 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往 ...
- iOS语言本地化/国际化宝典
语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用 ...
- Unity3D 数据转换 本地数据存储、Excel表格数据读取与多语言本地化
Unity3D 项目框架相关 数据转换 TDataConvertion XML本地数据存储 TGameSave Excel读表工具 TExcel 多语言本地化 TLocalization 范例工程: ...
- 05 C语言框架讲解(嵌入式C语言要学哪些内容,学习路线)
C语言框架讲解(C语言要学哪些内容,学习路线) b站配套视频地址 CSDN有图阅读地址 Gitee文档源码地址 作者 将狼才鲸 日期 2021-07-17 注:gitee暂不支持markdown me ...
- unity 项目实践经验 和 架构体系
GameRes游资网授权发布 文 / 吴秦(Tyler) 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: ...
- Unity 之 切换语言导致报错:System.FormatException:String was not recognized as a valid DateTime.
Unity 之 切换语言导致报错:System.FormatException:String was not recognized as a valid DateTime. 一,发生问题 1.1 问题 ...
- Unity项目接入IOS的Admob Native(原生视频广告) IOS SDK
实现的功能与Unity项目接入Android的Admob Native(原生视频广告) SDK(二.AS导出aar)相同,但IOS的操作与Android完全不同,接入IOS的SDK大概实现流程是: 1 ...
最新文章
- HDU_1087-Super Jumping! Jumping! Jumping!
- SimpleDateFormat 出现错误 Call requires API level 24 (current min is 15)
- 5G NGC — NSSF 网络切片选择功能
- 关于querySelector 和 document.getElementsByTagName 选中集合问题
- 2021-05-10 linux中的find命令——查找文件名
- SSO [ OAuth2.0 ]
- Qt工作笔记-QPlainTextEdit中数据的获取
- git 怎么拉取线上代码到本地进行合并_android studio如何使用git提交、拉取、合并代码的操作...
- Advanced Wlan Attacks (RADIUS)
- linux显示 cron 服务是否正在运行_通过Linux系统自带日志监控系统安全
- 哈理工计算机学院学生会技术部,计算机与信息学院学生会简介
- CMMI3—CMMI5认证的详细流程
- 金属酞菁催化剂可促进氧还原反应
- 林群、张景中院士近年来致力于微积分局部公理化,此路不通
- 网易邮箱注册静态页面
- XXX处有未经处理的异常: 0xC0000374: 堆已损坏,处有未经处理的异常: 0xC0000005: 读取位置 0x4F774B16 时发生访问冲突。
- MATLAB中mat转换为xlsx表格数据
- 企立方:为什么拼多多关键词搜不到自己的产品
- 算法 - 鸡尾酒排序(CocktailShaker_sort)
- LCA(最近公共祖先)问题