TinaX.I18N
简介
TinaX.I18N 为TinaX Framework提供了国际化相关功能.
使用Json (或.asset文件)定义的key/value配表 实时的区域切换 针对UGUI的扩展 package name: io.nekonya.tinax.i18n
设置
如何使用
主要服务接口:
TinaX.I18N.II18N
namespace TinaX.I18N { public interface II18N { string GetText(string key, string groupName = I18NConst.DefaultGroupName, string defaultText = null); Task UseRegionAsync(string regionName); void UseRegionAsync(string regionName, Action<XException> callback); } }
主要服务接口的Facade
TinaX.I18N.XI18N
定义一些Json文件
zh-CN-common.json { "data": [ { "k": "hello", "v": "你好" }, { "k":"100001", "v":"正在启动游戏..." } ] } en-US-common.json { "data": [ { "k": "hello", "v": "Hello" }, { "k":"100001", "v":"Game Initalize..." } ] }
Json文件适用于规模稍大的项目,通常在这些项目中,I18N定义文件会在Excel中由专人配置,并通过团队内的工具导出到Json.
然后在“Project Settings”窗口中,将上述Json文件配置给对应的区域。
在代码中使用I18N文本
//c#
gameObject.GetComponent<Text>().text = i18n.GetText("hello");
//lua
txtMessage.text = game.I18N:GetText("100001")
对于不必在代码中配置的内容,我们也可以直接使用对应的组件提供本地化显示。
TinaX的大部分功能都是基于路径管理资产的,包括图片、音频、Prefab等,这也就意味着几乎所有功能都可以通过key/value形式的i18n系统来提供本地化服务。