国际化集成手册

更新记录

版本 日期 修改人 修改内容
1.0.0 2020年7月17日 蔺浪(510525) 新建文档

概述

文档目的在于说明应用接入组件实现国际化多语言的实操过程,适用于程序开发阅读。

概念

以下提到“集成”均指应用集成组件以达到国际化多语言支持的目的,下文不再累述。

资源中心组件集成

组件包

  • Nd.VLab.ResourceCenter 1.2.12-preview4或以上版本

程序集

  • VLabResource.dll

代码引用

//命名空间
namespace VLabResource

//接口实例
VLabResourceCenter.Instance

资源中心初始化

//构造资源中心配置信息
//languageCode为设定资源中心的语言环境,默认为中文“zh_CN”
//支持语言编码字符串参见管理平台上“语言区域管理”列举的项,例如:"zh_CN", "en_US", "ar_SA"等
var resCenterConfig = new ResCenterConfig(ndrServiceCfgPath, moduleServiceCfgPath, resourceCachePath, playerVersion, engineVersion, languageCode = LANG_CODE_ZH_CN)

//初始化资源中心
VLabResourceCenter.Initialize(resCenterConfig)

参见资源中心接口文档

资源中心请求器材

//例如:获取所有实验器材信息(其它类似接口不再累述)
VLabResourceCenter.RequestAllEquipments(int priorityLevel, PeerPriority priority, int timeOut, ICollection<string> tags, string keyword,Action<ICollection<ModuleEquipmentData>> finishedCallback = null, Action<ErrorInfo> errorCallback = null)

//获取器材名称(协定:已翻译)
//本地资源不存在或本地语言包不存在,返回从服务器请求得到的器材名称
//本地资源和语言包存在,返回从本地语言包翻译后的器材名称
label.text = equipmentData.Name  //equipmentData指的是finishedCallback传回的数据

参见资源中心接口文档

资源中心下载器材

//例如:下载指定编码的实验器材(其它类似接口不再累述)
//下载器材时,会一并下载器材依赖的资源(组件/器材/药品/语言包)
VLabResourceCenter.DownloadEquipmentsByCodes(int priorityLevel, PeerPriority priority, int timeOut, ICollection<string> equipCodes, Action<float> progressCallback = null, Action<List<EquipmentInfo>> finishedCallback = null, Action<ErrorInfo> errorCallback = null)

//例如:获取实验器材数据(其它类似接口不再累述)
var equipmentData = VLabResourceCenter.GetEquipmentByCode(string equipCode)

//获取器材名称(协定:已翻译)
//本地资源不存在或本地语言包不存在,返回从服务器请求得到的器材名称
//本地资源和语言包存在,返回从本地语言包翻译后的器材名称
label.text = equipmentData.Name

参见资源中心接口文档

翻译组件集成

组件包

  • Nd.VLab.PlayerCore 1.4.0-preview1或以上版本

程序集

  • VLabPlayerCore.dll

代码引用

//命名空间
namespace NDVLab.PlayerCore.Utility

//接口实例
MultilingualUtility

翻译组件初始化

//初始化翻译组件
//languageDir:语言文件目录,该目录下存放各语言配置文件,命名遵循[language].ini
//例如:SimplifiedChinese.ini
//language:当前语言,与语言文件命名一致,例如:SimplifiedChinese
//该接口会从languageDir下载入[language].ini文件内容
MultilingualUtility.Initialize(string languageDir, string language)

参见翻译组件接口文档

翻译组件追加多语言文件

//追加语言资源目录
//languageDir:语言文件目录,该目录下存放各语言配置文件,命名遵循[language].ini
//例如:SimplifiedChinese.ini
//该接口会从追加的目录下加载当前语言对应的语言文件内容
//使用场景:应用初始化语言目录后,接入的一些组件(例如PlayerCoreUI组件)也需要载入其语言资源
//则可以使用该接口追加语言资源目录并载入其语言文件内容
MultilingualUtility.AppendLanguage(string languageDir)

参见翻译组件接口文档

翻译组件获取指定翻译文本

//获取当前语言下Key对应的翻译文本
//key: 多语言key
//defaultValue: 未成功匹配时期望返回的默认值
//不需要默认值则该参数不要赋值,若赋值为string.Empty,则未翻译成功时返回string.Empty;
//若赋值为null, 则未翻译成功时返回传入的原key
//该接口可以从本地语言文件(应用初始化时设定语言目录下)或者资源中心下载的多语言包资源中进行翻译
//应用直接调用接口,无需关心翻译细则,翻译组件会自行决策处理
label.text = MultilingualUtility.Translate(string key, string defaultValue = null)

参见翻译组件接口文档

颗粒加载组件集成

组件包

  • Nd.VLab.OpenLabFile 1.1.0-preview1或以上版本

程序集

  • VLabOpenLabFile.dll

代码引用

//命名空间
namespace NDVLab.Helper

//接口实例
LabFileLoadHelper.Instance

UI组件集成(非必须)

  • 请UI组件同学补充

干系人清单

组件 描述 负责人 干系人
ResourceCenter 资源中心组件,资源请求与下载 蔺浪(510525) 蔺浪 杨循 黄金民
MultilingualUtility 多语言翻译组件 蔺浪(510525) 蔺浪
OpenLabFile Lab文件加载器 曾杰 曾杰 蔺浪
PlayerCoureUI UI组件 杨卫东 杨卫东

相关链接