0.关于I18N
1.i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.
2.l10n 本地化的缩写
1.大致思路
a) 资源准备:对应不同语言的配置对应的资源;比如:”chinese”:{“start”:”开始”} ,”english”:{“start”:”Start”}¶
b) 资源读取:根据配置信息(或者根据当前系统语言)读取解析对应的资源文件.
c) 资源管理:一个对应的管理器,提供依据唯一key取对应语言文本的接口
d) 资源使用:使用的文字的组件.挂载脚本,进行设置自身的文字显示内容.挂载方式:手动设置UI/依据配置进行挂载脚本(配置的key值或是text默认值 或是配置的其他内容名称路径等)
e) 运行时:国际化管理器公布事件/消息,参与国际化的组件脚本订阅事件,变化是根据key从管理器获取对应文本/加载对应资源
2.Runtime editor插件
插件下载 别人的积分挺高的= =
使用的xml进行配置.
解析之后 使用方式: 对需要本地化的text组件进行按照id取值,(id写在代码中)
XML配置格式
调用方式1
调用方式2
3.Gameframework框架
框架连接 里边有框架下载方式和一些说明
初始化时,根据当前语言解析xml配置文件取出所有键值对的方式
使用: 将text 内容的默认值 为key 取字典内的数据 设置显示的内容
每加载一个panel 获取所有子物体的text 设置显示的内容
组件
设置方式
4.MVVM框架--LoxodonFramework
框架提供了多种方式的资源,xml asset文件, 和本地化数据源脚本,以及提供的csv存储的方式. 本地化的内容不限于文本,包括纹理,字体,精灵,音效,视频等 文本以外的资源以配置路径的方式更新,格式参考 LoxodonFramework.pdf 文档.
使用方式:更新脚本挂载text组件 配置key
配置格式:CSV表格
5.AssetStore
1.I2 Localization
没钱买只能贴个图
2.和另一个Localization Manager
不过看截图也是配置csv文件挂载text组件上读取和更新的
3.这个是免费的的 Translation system/I18N Plugin/Languages
配置的也是cvs文件
实现方式:管理器公布事件 需要国际化的组件物体上挂载对应的脚本 订阅管理器的事件实现改变 过程如下面几个截图
设置方式
6.Rosetta
通过一些 Unity 和 C# 的特性,从而尽量让整个 I18N 工作自动化,
1.介绍
一个国际化的插件,提供工具,在场景内的需要参与国际化的组件物体上挂载对应的插件提供的脚本(称之为对国际化物体的标记),标记完成后,插件提供的工具可以提取对应信息生成.pot文件
具体的使用方式是挂脚本,加监听 官方文档介绍部分截图如下.后边有链接 可点开
2.使用文档和下载
3.补充
有一说一这个链接下下来是会报错的.缺了几个dll 费很大劲 翻墙才算下到,等我上传审核通过后补一下链接吧
7.CatLib Unity3D框架
链接放上 里边说的很详细
8.总结
1.配置文件选择
- xml/csv/json 采取何种方式存储,
- 是否要分类存储,按照不同模块存不同的配置文件
2.使用方式.
- Text组件挂载脚本注册国际化事件,key值采取text内默认值或者是挂载脚本填写
- 脚本内获取相应的text 设置内容, key值为脚本内写好的.或者text内默认
- 按照panel find子物体内所有的text,统一进行设置,key值为text内默认内容,
3.说明:
对资源的加载并没有做过多说明,不管是加载xml还是csv文件,亦或者是json 网上都有大把的资料可供参考,
此博客也主要是对国际化功能的一些方式收集 ,仅供参考, 无demo和源码提供,可以分享的资源和连接都在博客内,