国际化
融云 IMKit SDK 默认支持显示三种语言:简体中文、英文、阿拉伯语。
使用内置语言
跟随系统语言
IMKit 默认会根据系统语言切换显示的语言,无需额外配置。
当系统切换到 IMKit 不支持的语言时,IMKit 会默认显示英文。
指定显示的语言
此方法需要在 IMKit 界面未显示前调用,否则会影响 UI 的显示。
// 设置简体中文 @"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 会从项目 mainBundle 或 RongIMKit.framework 中查找名为 RongCloudKit.strings 的本地化资源文件。
要为 IMKit 新增语言包,您只需要在 App 工程里添加与 IMKit 同名的 RongCloudKit.strings 文件,并翻译对应的文案即可。
添加项目支持的目标语言
步骤 1 打开 Xcode,进入工程设置,比如添加 日语。
菜单项包含语言名称,后跟括号内的语言 ID(例如日语 (ja) 和阿拉伯语 (ar))。lproj 的文件名就是括号内显示的语言 ID。
当指定显示语言设置 preferredLanguage 时,传入括号内的语言 ID 即可。
例如 [RCKitConfig defaultConfig].ui.preferredLanguage = @"ja";
步骤 2 至少勾选一个,点击 Finish。
添加目标语言本地化资源文件
步骤 1 在 App 项目中创建一个 Strings 文件。
步骤 2 命名必须和融云 IMKit 的本地化资源文件一致,RongCloudKit,点击 Create。
步骤 3 选中刚创建的 RongCloudKit.strings 文件,设置目标语言。
步骤 4 在 Xcode 文件导航栏或通过快捷键 Command + Option + J,使用 RongCloudKit.strings 进行筛选。
步骤 5 将 RongIMKit 目录下 RongCloudKit.strings 文件里的所有 key复制到您工程的 RongCloudKit.strings (Japanese) 中。
步骤 6 保持 key 不变,只翻译等号右侧的 value 文案。
示例:
"OK"="确定";
将 value 翻译为目标语言:
"OK"="確認";
使用新增的语言包
添加完语言包后,您可以通过以下方式使用新增的语言:
跟随系统语言
将 preferredLanguage 设置为 nil,即可跟随系统语言切换。
// 跟随系统语言切换
[RCKitConfig defaultConfig].ui.preferredLanguage = nil;
指定显示的语言
调用 RCKitConfig 的 preferredLanguage 属性,传入新增的语言 ID(例如日语 (ja) 和阿拉伯语 (ar))。
// 指定显示的语言
[RCKitConfig defaultConfig].ui.preferredLanguage = @"ja";
常见问题排查
-
新增语言后仍显示中文/英 文
可在项目中通过以下步骤排查:
- 确认
RongCloudKit.strings已勾选 Target Membership,并被加入到 App Target 的构建产物中。 - 确认
RongCloudKit.strings的 Localization 已勾选目标语言,且您编辑的是对应语言的子文件(例如 Japanese)。 - 确认文件名是
RongCloudKit.strings,不是RongCloudKit.strings.txt或其他变体。
- 确认
-
部分文案未翻译
通常是该 key 未在您新增语言的
RongCloudKit.strings中提供对应 value。请再次对照 SDK 内置RongCloudKit.strings文件中的 key 进行补齐。