跳到主要内容

国际化

Global IM UIKit 内置实现支持 zh_CNen_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']