Merge pull request #54 from Kevinlinpr/atm2

优化分类数据加载的语言参数
This commit is contained in:
2025-11-10 10:07:35 +08:00
committed by GitHub

View File

@@ -234,22 +234,24 @@ object AgentViewModel: ViewModel() {
try { try {
// 获取完整的语言标记(如 "zh-CN" // 获取完整的语言标记(如 "zh-CN"
val sysLang = com.aiosman.ravenow.utils.Utils.getPreferredLanguageTag() val fullLangTag = com.aiosman.ravenow.utils.Utils.getPreferredLanguageTag()
// 转换为后端支持的语言代码(仅支持 zh、cn、ja
val sysLang = convertToSupportedLangCode(fullLangTag)
val response = apiClient.getCategories( val response = apiClient.getCategories(
page = 1, page = 1,
pageSize = 100, pageSize = 100,
isActive = true, isActive = true,
withChildren = false, // withChildren = false,
withParent = false, // withParent = false,
withCount = true, // withCount = true,
hideEmpty = true, // hideEmpty = true,
lang = sysLang lang = sysLang
) )
println("分类数据请求完成,响应成功: ${response.isSuccessful}, 语言标记: $sysLang") println("分类数据请求完成,响应成功: ${response.isSuccessful}, 原始语言标记: $fullLangTag, 转换后: $sysLang")
if (response.isSuccessful) { if (response.isSuccessful) {
val categoryList = response.body()?.list ?: emptyList() val categoryList = response.body()?.list ?: emptyList()
println("获取到 ${categoryList.size} 个分类") println("获取到 ${categoryList.size} 个分类")
// 使用当前语言获取翻译后的分类名称 // 使用转换后的语言代码获取翻译后的分类名称
categories = categoryList.map { category -> categories = categoryList.map { category ->
CategoryItem.fromCategoryTemplate(category, sysLang) CategoryItem.fromCategoryTemplate(category, sysLang)
} }
@@ -266,6 +268,24 @@ object AgentViewModel: ViewModel() {
} }
} }
/**
* 将完整的语言标记转换为后端支持的语言代码
* 后端仅支持: zh, cn, ja
*
* @param langTag 完整的语言标记,如 "zh-CN", "zh-TW", "ja-JP", "en-US" 等
* @return 后端支持的语言代码,默认返回 "zh"
*/
private fun convertToSupportedLangCode(langTag: String): String {
return when {
langTag.startsWith("zh", ignoreCase = true) -> "zh"
langTag.startsWith("ja", ignoreCase = true) -> "ja"
// 如果是中文相关的其他标记,也返回 zh
langTag.equals("cn", ignoreCase = true) -> "cn"
// 默认返回中文
else -> "zh"
}
}
fun loadAgentsByCategory(categoryId: Int) { fun loadAgentsByCategory(categoryId: Int) {
loadAgentData(categoryId) loadAgentData(categoryId)
} }