跳到主要内容

国际化

融云 IMKit SDK 默认支持显示三种语言:简体中文、英文、阿拉伯语。

使用内置语言

跟随系统语言

IMKit 默认会根据系统语言切换显示的语言,无需额外配置。

当系统切换到 IMKit 不支持的语言时,IMKit 会默认显示英文。

指定显示的语言

提示

此方法需要在 IMKit 界面未显示前调用,否则会影响 UI 的显示。

objective-c
// 设置简体中文 @"zh-Hans"
[RCKitConfig defaultConfig].ui.preferredLanguage = RCKitLanguageZH_HANS;

// 设置英语 @"en"
[RCKitConfig defaultConfig].ui.preferredLanguage = RCKitLanguageEN;

// 设置阿拉伯语 @"ar"
[RCKitConfig defaultConfig].ui.preferredLanguage = RCKitLanguageAR;

// 设置为空,自动跟随系统语言
[RCKitConfig defaultConfig].ui.preferredLanguage = nil;

增加语言包支持

IMKit 会从项目 mainBundleRongIMKit.framework 中查找名为 RongCloudKit.strings 的本地化资源文件。

要为 IMKit 新增语言包,您只需要在 App 工程里添加与 IMKit 同名的 RongCloudKit.strings 文件,并翻译对应的文案即可。

添加项目支持的目标语言

步骤 1 打开 Xcode,进入工程设置,比如添加 日语

Step 1

菜单项包含语言名称,后跟括号内的语言 ID(例如日语 (ja) 和阿拉伯语 (ar))。lproj 的文件名就是括号内显示的语言 ID。

提示

当指定显示语言设置 preferredLanguage 时,传入括号内的语言 ID 即可。

例如 [RCKitConfig defaultConfig].ui.preferredLanguage = @"ja";

步骤 2 至少勾选一个,点击 Finish。

Step 2

添加目标语言本地化资源文件

步骤 1 在 App 项目中创建一个 Strings 文件。

Step 3

步骤 2 命名必须和融云 IMKit 的本地化资源文件一致,RongCloudKit,点击 Create。

Step 4

步骤 3 选中刚创建的 RongCloudKit.strings 文件,设置目标语言。

Step 5 Step 5

步骤 4 在 Xcode 文件导航栏或通过快捷键 Command + Option + J,使用 RongCloudKit.strings 进行筛选。

步骤 5 将 RongIMKit 目录下 RongCloudKit.strings 文件里的所有 key复制到您工程的 RongCloudKit.strings (Japanese) 中。

步骤 6 保持 key 不变,只翻译等号右侧的 value 文案。

示例:

text
"OK"="确定";

将 value 翻译为目标语言:

text
"OK"="確認";

使用新增的语言包

添加完语言包后,您可以通过以下方式使用新增的语言:

跟随系统语言

preferredLanguage 设置为 nil,即可跟随系统语言切换。

objective-c
// 跟随系统语言切换
[RCKitConfig defaultConfig].ui.preferredLanguage = nil;

指定显示的语言

调用 RCKitConfigpreferredLanguage 属性,传入新增的语言 ID(例如日语 (ja) 和阿拉伯语 (ar))。

objective-c
// 指定显示的语言
[RCKitConfig defaultConfig].ui.preferredLanguage = @"ja";

常见问题排查

  • 新增语言后仍显示中文/英文

    可在项目中通过以下步骤排查:

    • 确认 RongCloudKit.strings 已勾选 Target Membership,并被加入到 App Target 的构建产物中。
    • 确认 RongCloudKit.stringsLocalization 已勾选目标语言,且您编辑的是对应语言的子文件(例如 Japanese)。
    • 确认文件名是 RongCloudKit.strings,不是 RongCloudKit.strings.txt 或其他变体。
  • 部分文案未翻译

    通常是该 key 未在您新增语言的 RongCloudKit.strings 中提供对应 value。请再次对照 SDK 内置 RongCloudKit.strings 文件中的 key 进行补齐。