国际化
获取当前支持的语言选项
接口定义
kotlin
fun supportedLanguages(): MutableList<KIMLanguage>
代码示例
kotlin
// 1. 通过 languageCtrl 访问
KIM.getControl().languageCtrl.supportedLanguages()
// 2. 也可以简写为
KIM.getControl().supportedLanguages()
获取当前的语言设置
接口定义
kotlin
fun currentLanguage(context: Context): KIMLanguage
参数说明
参数 | 类型值 | 说明 |
---|---|---|
context | Context | 应用上下文 |
代码示例
kotlin
// 1. 通过 languageCtrl 访问
KIM.getControl().languageCtrl.currentLanguage(context)
// 2. 也可以简写为
KIM.getControl().currentLanguage(context)
修改当前语言
注:设置语言后如果想全局生效,需要重启App;在App重启前留意一下是否需要数据保存或清理操作,避免数据丢失或产生脏数据问题;
接口定义
kotlin
fun changeLanguage(
context: Context,
language: KIMLanguage,
restart: Boolean = false,
beforeRestart: Runnable? = null,
restartAction: Runnable? = null
)
参数说明
参数 | 类型 | 说明 |
---|---|---|
context | Context | 应用上下文 |
language | KIMLanguage | 需要设置的目标语言 |
restart | Boolean | 是否重启App; • true:重启; • false:不重启; |
beforeRestart | Runnable? | 重启App前的回调,需要restart参数为true时才执行;(注意:此接口会在子线程中执行) |
restartAction | Runnable? | 重启动作(注意:此接口会在主线程执行); |
代码示例
kotlin
// 1. 使用默认重启逻辑
KIM.getControl().languageCtrl.changeLanguage(requireContext(), language, true) {
// TODO: 重启前的附加操作(注意:该回调在子线程中执行)
}
// 2. 自定义重启逻辑
KIM.getControl().languageCtrl.changeLanguage(requireContext(), language, true, {
// TODO: 重启前的附加操作(注意:该回调在子线程中执行)
}) {
// TODO: 自定义的重启动作(注意:此接口会在主线程执行);
}
支持的语言配置
语言类型定义在枚举类KIMLanguage:
语言 | 说明 |
---|---|
FOLLOW_SYSTEM | 跟随系统 |
ENGLISH | 英文 |
SIMPLIFIED_CHINESE | 简体中文 |
TRADITIONAL_CHINESE | 繁体中文 |
Locale转换
接口定义
kotlin
// 转换成 local,跟随系统则返回系统默认语言
fun toLocale(): Locale
// 转换成 local,跟随系统则返回 null
fun toLocaleOrSysNull(): Locale?
代码示例
kotlin
val locale = KIMLanguage.SIMPLIFIED_CHINESE.toLocale()
val locale = KIM.getControl().currentLanguage(context).toLocale()
val locale = KIM.getControl().currentLanguage(context).toLocaleOrSysNull()