国际化
Global IM UIKit 内置实现支持 zh_CN
、en_US
两种语言,默认优先展示 en_US
。
修改默认语言
您可以根据自身业务需求,在 SDK 初始化时,通过 lang
参数修改默认语言配置。
import { RCKitInstaller } from '@rongcloud/global-im-uikit';
const kitApp = RongIMLib.installPlugin(RCKitInstaller, {
// ...
language: 'zh_CN', // 默认为 'en_US'
// ...
});
切换语言
Global IM UIKit 支持在运行时切换语言,您可以通过 setLanguage
方法更改语言,SDK 将立即更新 UI 界面中的语言显示。
kitApp.setLanguage('zh_CN');
同时,SDK 也提供了 getLanguage
方法,用于获取当前语言环境标识。
const language = kitApp.getLanguage();
自定义语言包
提示
自定义语言包功能仅限于 kitApp.ready()
前调用生效。
Global IM UIKit 支持自定义语言包拓展,以便于业务层自行适配更多语言环境。其核心 API 共两个:
- cloneLanguageEntries:用于获取 Global IM UIKit 内置语言包词条拷贝,以便于基于内置语言包进行拓展或修改
- registerLanguagePack:注册语言包,也可用于覆盖既有语言包,如
zh_CN
代码示例
// 获取内置简体中文语言包词条拷贝
const entries = kitApp.cloneLanguageEntries('zh_CN');
// 修改词条内容为繁体中文
// ...
entrise['alert.send.message.maxcount'] = '內容超過 {0} 字,請刪除部分內容後再嘗試發送';
// ...
// 新增注册语言包 zh_HK
kitApp.registerLanguagePack('zh_HK', entries);
若您是 Typescript 开发者,也可以通过 IRCKitLanguageEntries 接口定义,从零开始编写自定义语言包。
import { IRCKitLanguageEntries } from '@rongcloud/global-im-uikit';
const entries: IRCKitLanguageEntries = {
// ...
'alert.send.message.maxcount': '內容超過 {0} 字,請刪除部分內容後再嘗試發送',
// ...
};
// 新增注册语言包 zh_HK
kitApp.registerLanguagePack('zh_HK', entries);
获取语言包列表
您可以通过 getSupportedLanguages
方法获取 Global IM UIKit 内置支持的语言标识列表。若业务层增加了自定义语言包,也会被包含在返回结果中。
const list = kitApp.getSupportedLanguages(); // ['zh_CN', 'en_US']