Skip to main content
Version: Next

支持语言

支持语言说明

Android 当前公开能力

Android 提供获取在线 / 离线翻译当前支持语言列表的公开接口,用于驱动语言选择 UI。两个接口都依赖 sdkInit(context, config)、不依赖鉴权,内部带磁盘快照缓存:网络失败或服务端无增量时回退本地缓存。

@JvmStatic
@JvmOverloads
fun getOnlineSupportedLanguages(
version: String? = null,
callback: TmkLocaleListCallback,
): Cancelable

@JvmStatic
@JvmOverloads
fun getOfflineSupportedLanguages(
version: String? = null,
callback: TmkLocaleListCallback,
): Cancelable

参数说明:

参数必填说明
version本地缓存版本号;不传时优先复用 SDK 已保存的版本号发起增量请求。
callbackTmkLocaleListCallbackonSuccess(response) 返回语言列表,onError(errorId, e) 返回统一错误。

返回值:Cancelable,可取消的请求句柄。

回调与数据模型:

interface TmkLocaleListCallback {
fun onSuccess(response: TmkLocaleListResponse)
fun onError(errorId: Int, e: Exception)
}

data class TmkLocaleListResponse(
val version: String?, // 服务端配置版本号
val languages: List<TmkLocaleLanguage>,
) {
val localeOptions: List<TmkLocaleItem> // 展平并按 code 去重,可直接用于语言选择 UI
}

data class TmkLocaleLanguage(
val code: String, // 语言编码,例如 en
val displayName: String, // 语言展示名称,例如 英语
val locales: List<TmkLocaleItem>, // 该语言下的地区/口音;离线配置可为空
)

data class TmkLocaleItem(
val code: String, // 地区/口音编码,例如 en-US
val displayName: String, // 地区/口音展示名称,例如 美国
)
note

localeOptions 会按 code 去重并保留首次出现顺序:服务端可能把同一 code(如粤语 zh-HK)下发在多个语言分组下,去重后避免 UI 出现重复选项。

示例:

TmkTranslationSDK.getOnlineSupportedLanguages(callback = object : TmkLocaleListCallback {
override fun onSuccess(response: TmkLocaleListResponse) {
val options = response.localeOptions.map { "${it.displayName}(${it.code})" }
// 用 options 刷新语言选择 UI
}
override fun onError(errorId: Int, e: Exception) {
// 统一错误处理
}
})

在线与离线语言差异

项目在线离线
语言代码通常使用 BCP-47,例如 zh-CNen-US可传 zhzh-CNzh-HKenen-US 等,SDK 会归一为主语言标签
当前主要支持以在线服务配置为准由 License scope 与已下载的离线模型决定;当前服务端 scope 未下发语种限制,可用语种取决于对应模型是否下载完整
不支持语言创建房间/通道或运行时返回错误SDK 层不做语种白名单拦截;缺少对应模型时在模型资源校验阶段报 OFFLINE_MODEL_NOT_READY,底层引擎拒绝非法 locale 时才返回 2001113 / INVALID_LANGUAGE_CODE

业务侧需要让用户重新选择支持语言后再重试。在线模式建议重新创建对话;离线模式建议先确认对应语种模型已下载完整,再重新初始化离线通道并重新检查模型资源。