diff --git a/app/src/main/java/com/aiosman/ravenow/ui/account/MbtiSelectScreen.kt b/app/src/main/java/com/aiosman/ravenow/ui/account/MbtiSelectScreen.kt index 7748ade..cf49830 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/account/MbtiSelectScreen.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/account/MbtiSelectScreen.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Check +import com.aiosman.ravenow.AppState import com.aiosman.ravenow.LocalAppTheme import com.aiosman.ravenow.LocalNavController import com.aiosman.ravenow.R @@ -80,6 +81,10 @@ fun MbtiSelectScreen() { isSelected = mbti == currentMbti, onClick = { model.mbti = mbti + // 立即保存到本地存储,确保选择后立即生效 + AppState.UserId?.let { uid -> + com.aiosman.ravenow.AppStore.setUserMbti(uid, mbti) + } navController.navigateUp() } ) diff --git a/app/src/main/java/com/aiosman/ravenow/ui/account/ZodiacSelectScreen.kt b/app/src/main/java/com/aiosman/ravenow/ui/account/ZodiacSelectScreen.kt index 464fcfd..3a1a494 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/account/ZodiacSelectScreen.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/account/ZodiacSelectScreen.kt @@ -29,24 +29,55 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Check +import com.aiosman.ravenow.AppState import com.aiosman.ravenow.LocalAppTheme import com.aiosman.ravenow.LocalNavController import com.aiosman.ravenow.R import com.aiosman.ravenow.ui.comment.NoticeScreenHeader -// 星座列表 -val ZODIAC_SIGNS = listOf( - "白羊座", "金牛座", "双子座", "巨蟹座", - "狮子座", "处女座", "天秤座", "天蝎座", - "射手座", "摩羯座", "水瓶座", "双鱼座" +// 星座资源ID列表 +val ZODIAC_SIGN_RES_IDS = listOf( + R.string.zodiac_aries, + R.string.zodiac_taurus, + R.string.zodiac_gemini, + R.string.zodiac_cancer, + R.string.zodiac_leo, + R.string.zodiac_virgo, + R.string.zodiac_libra, + R.string.zodiac_scorpio, + R.string.zodiac_sagittarius, + R.string.zodiac_capricorn, + R.string.zodiac_aquarius, + R.string.zodiac_pisces ) +/** + * 根据存储的星座字符串(可能是任何语言)找到对应的资源ID + * 如果找不到,返回null + */ +@Composable +fun findZodiacResId(storedZodiac: String?): Int? { + if (storedZodiac.isNullOrEmpty()) return null + + // 尝试在所有语言的资源中查找匹配 + ZODIAC_SIGN_RES_IDS.forEachIndexed { index, resId -> + val zodiacText = stringResource(resId) + if (zodiacText == storedZodiac) { + return resId + } + } + + // 如果找不到精确匹配,尝试通过资源ID索引查找(兼容旧数据) + // 这里可以根据需要添加更多兼容逻辑 + return null +} + @Composable fun ZodiacSelectScreen() { val navController = LocalNavController.current val appColors = LocalAppTheme.current val model = AccountEditViewModel - val currentZodiac = model.zodiac + val currentZodiacResId = findZodiacResId(model.zodiac) Column( modifier = Modifier @@ -70,12 +101,20 @@ fun ZodiacSelectScreen() { modifier = Modifier.fillMaxSize(), contentPadding = androidx.compose.foundation.layout.PaddingValues(horizontal = 16.dp, vertical = 8.dp) ) { - items(ZODIAC_SIGNS) { zodiac -> + items(ZODIAC_SIGN_RES_IDS.size) { index -> + val zodiacResId = ZODIAC_SIGN_RES_IDS[index] + val zodiacText = stringResource(zodiacResId) ZodiacItem( - zodiac = zodiac, - isSelected = zodiac == currentZodiac, + zodiac = zodiacText, + zodiacResId = zodiacResId, + isSelected = zodiacResId == currentZodiacResId, onClick = { - model.zodiac = zodiac + // 保存当前语言的星座文本 + model.zodiac = zodiacText + // 立即保存到本地存储,确保选择后立即生效 + AppState.UserId?.let { uid -> + com.aiosman.ravenow.AppStore.setUserZodiac(uid, zodiacText) + } navController.navigateUp() } ) @@ -88,6 +127,7 @@ fun ZodiacSelectScreen() { @Composable fun ZodiacItem( zodiac: String, + zodiacResId: Int, isSelected: Boolean, onClick: () -> Unit ) { diff --git a/app/src/main/java/com/aiosman/ravenow/ui/account/edit2.kt b/app/src/main/java/com/aiosman/ravenow/ui/account/edit2.kt index c6d2179..4ba76f4 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/account/edit2.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/account/edit2.kt @@ -105,9 +105,9 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) val cleanValue = value.replace("\n", "").replace("\r", "") model.name = cleanValue usernameError = when { - cleanValue.trim().isEmpty() -> "昵称不能为空" - cleanValue.length < 3 -> "昵称长度不能小于3" - cleanValue.length > 20 -> "昵称长度不能大于20" + cleanValue.trim().isEmpty() -> context.getString(R.string.error_nickname_empty) + cleanValue.length < 3 -> context.getString(R.string.error_nickname_too_short) + cleanValue.length > 20 -> context.getString(R.string.error_nickname_too_long) else -> null } } @@ -119,7 +119,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) val cleanValue = value.replace("\n", "").replace("\r", "") model.bio = cleanValue bioError = when { - cleanValue.length > 100 -> "个人简介长度不能大于100" + cleanValue.length > 100 -> context.getString(R.string.error_bio_too_long) else -> null } } @@ -244,7 +244,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) tint = Color.White ) Text( - text = "更换封面", + text = stringResource(R.string.change_cover), fontSize = 12.sp, color = Color.White ) @@ -288,7 +288,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) // 标题 Text( - text = "编辑资料", + text = stringResource(R.string.edit_profile_info), fontSize = 17.sp, fontWeight = FontWeight.SemiBold, color = Color.White, @@ -365,7 +365,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) ) { // 昵称输入框 ProfileInfoCard( - label = "昵称", + label = stringResource(R.string.nickname), value = model.name, placeholder = "Value", onValueChange = { onNicknameChange(it) }, @@ -376,7 +376,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) // 个人简介输入框 ProfileInfoCard( - label = "个人简介", + label = stringResource(R.string.personal_intro), value = model.bio, placeholder = "Welcome to my fantiac word i will show you something about magic", onValueChange = { onBioChange(it) }, @@ -394,7 +394,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) ) { // MBTI 类型 ProfileSelectItem( - label = "MBTI 类型", + label = stringResource(R.string.mbti_type), value = model.mbti ?: "ENFP", iconColor = Color(0xFF7C45ED), iconResDark = null, // TODO: 添加MBTI暗色模式图标 @@ -417,8 +417,13 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) // 星座(使用当前图标) ProfileSelectItem( - label = "星座", - value = model.zodiac ?: "白羊座", + label = stringResource(R.string.zodiac), + value = model.zodiac?.let { storedZodiac -> + // 尝试找到对应的资源ID并显示当前语言的文本 + findZodiacResId(storedZodiac)?.let { resId -> + stringResource(resId) + } ?: storedZodiac // 如果找不到,显示原始存储的值 + } ?: stringResource(R.string.zodiac_aries), iconColor = Color(0xFFFFCC00), iconResDark = R.mipmap.frame_4, // 星座暗色模式图标 iconResLight = R.mipmap.xingzuo, // 星座亮色模式图标 @@ -467,7 +472,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) contentAlignment = Alignment.Center ) { Text( - text = "保存", + text = stringResource(R.string.save), fontSize = 17.sp, fontWeight = FontWeight.Normal, color = Color.White @@ -483,7 +488,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,) contentAlignment = Alignment.Center ) { Text( - text = "加载用户资料失败,请重试", + text = stringResource(R.string.error_load_profile_failed), color = appColors.text ) } diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GalleryItem.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GalleryItem.kt index 272b882..c0b0df5 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GalleryItem.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GalleryItem.kt @@ -199,7 +199,7 @@ fun GalleryGrid( Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp)) Text( - text = "你的故事还没开始", + text = stringResource(R.string.your_story_not_started), fontSize = 16.sp, color = AppColors.text, fontWeight = FontWeight.W600 @@ -208,7 +208,7 @@ fun GalleryGrid( Spacer(modifier = Modifier.height(8.dp)) Text( - text = "发布一条动态,和世界打个招呼吧", + text = stringResource(R.string.publish_moment_greeting), fontSize = 14.sp, color = AppColors.secondaryText, fontWeight = FontWeight.W400 diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GroupChatEmptyContent.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GroupChatEmptyContent.kt index 2c5fa48..b20e214 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GroupChatEmptyContent.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/GroupChatEmptyContent.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -71,7 +72,7 @@ fun GroupChatEmptyContent() { // 空状态文本 Text( - text = "空空如也~", + text = stringResource(R.string.empty_nothing), fontSize = 16.sp, fontWeight = FontWeight.SemiBold, color = Color(0xFF000000) @@ -94,7 +95,7 @@ private fun SegmentedControl( ) { // 全部 SegmentButton( - text = "全部", + text = stringResource(R.string.chat_all), isSelected = selectedIndex == 0, onClick = { onSegmentSelected(0) }, width = 54.dp @@ -104,7 +105,7 @@ private fun SegmentedControl( // 公开 SegmentButton( - text = "公开", + text = stringResource(R.string.public_label), isSelected = selectedIndex == 1, onClick = { onSegmentSelected(1) }, width = 59.dp @@ -114,7 +115,7 @@ private fun SegmentedControl( // 私有 SegmentButton( - text = "私有", + text = stringResource(R.string.private_label), isSelected = selectedIndex == 2, onClick = { onSegmentSelected(2) }, width = 54.dp diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserAgentsList.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserAgentsList.kt index d91db42..676c5a4 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserAgentsList.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserAgentsList.kt @@ -247,7 +247,7 @@ fun AgentEmptyContentWithSegments() { Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp)) Text( - text = "专属AI等你召唤", + text = stringResource(R.string.exclusive_ai_waiting), fontSize = 16.sp, color = AppColors.text, fontWeight = FontWeight.W600 @@ -256,7 +256,7 @@ fun AgentEmptyContentWithSegments() { Spacer(modifier = Modifier.height(8.dp)) Text( - text = "AI将成为你的伙伴,而不是工具", + text = stringResource(R.string.ai_companion_not_tool), fontSize = 14.sp, color = AppColors.secondaryText, fontWeight = FontWeight.W400 @@ -311,7 +311,7 @@ private fun AgentSegmentedControl( ) { // 全部 AgentSegmentButton( - text = "全部", + text = stringResource(R.string.chat_all), isSelected = selectedIndex == 0, onClick = { onSegmentSelected(0) }, width = 54.dp @@ -321,7 +321,7 @@ private fun AgentSegmentedControl( // 公开 AgentSegmentButton( - text = "公开", + text = stringResource(R.string.public_label), isSelected = selectedIndex == 1, onClick = { onSegmentSelected(1) }, width = 59.dp @@ -331,7 +331,7 @@ private fun AgentSegmentedControl( // 私有 AgentSegmentButton( - text = "私有", + text = stringResource(R.string.private_label), isSelected = selectedIndex == 2, onClick = { onSegmentSelected(2) }, width = 54.dp diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserContentPageIndicator.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserContentPageIndicator.kt index 8e448a5..17aeca5 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserContentPageIndicator.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserContentPageIndicator.kt @@ -10,21 +10,14 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.pager.PagerState -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp @@ -52,7 +45,7 @@ fun UserContentPageIndicator( .padding(horizontal = 16.dp), horizontalArrangement = Arrangement.SpaceEvenly ) { - // 图片/相册 Tab + // 动态 Tab Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier @@ -64,15 +57,24 @@ fun UserContentPageIndicator( } .padding(vertical = 12.dp) ) { - Icon( - painter = painterResource(id = R.drawable.rider_pro_images), - contentDescription = "Gallery", - tint = if (pagerState.currentPage == 0) AppColors.text else AppColors.text.copy(alpha = 0.6f), - modifier = Modifier.size(24.dp) + Text( + text = stringResource(R.string.index_dynamic), + fontSize = 16.sp, + fontWeight = if (pagerState.currentPage == 0) FontWeight.SemiBold else FontWeight.Medium, + color = if (pagerState.currentPage == 0) Color(0xFF000000) else Color(0x993C3C43) ) + Spacer(modifier = Modifier.height(if (pagerState.currentPage == 0) 6.dp else 4.dp)) + if (pagerState.currentPage == 0) { + Box( + modifier = Modifier + .width(20.dp) + .height(2.dp) + .background(Color(0xFF000000)) + ) + } } - // Agent Tab (只在非智能体用户时显示) + // 智能体 Tab (只在非智能体用户时显示) if (showAgentTab) { Column( horizontalAlignment = Alignment.CenterHorizontally, @@ -85,40 +87,54 @@ fun UserContentPageIndicator( } .padding(vertical = 12.dp) ) { - Icon( - painter = painterResource(id = R.drawable.rider_pro_nav_ai), - contentDescription = "Agents", - tint = if (pagerState.currentPage == 1) AppColors.text else AppColors.text.copy(alpha = 0.6f), - modifier = Modifier.size(24.dp) + Text( + text = stringResource(R.string.chat_ai), + fontSize = 16.sp, + fontWeight = if (pagerState.currentPage == 1) FontWeight.SemiBold else FontWeight.Medium, + color = if (pagerState.currentPage == 1) Color(0xFF000000) else Color(0x993C3C43) ) + Spacer(modifier = Modifier.height(if (pagerState.currentPage == 1) 6.dp else 4.dp)) + if (pagerState.currentPage == 1) { + Box( + modifier = Modifier + .width(20.dp) + .height(2.dp) + .background(Color(0xFF000000)) + ) + } + } + } + + // 群聊 Tab (只在非智能体用户时显示) + if (showAgentTab) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .weight(1f) + .noRippleClickable { + scope.launch { + pagerState.scrollToPage(2) + } + } + .padding(vertical = 12.dp) + ) { + Text( + text = stringResource(R.string.chat_group), + fontSize = 16.sp, + fontWeight = if (pagerState.currentPage == 2) FontWeight.SemiBold else FontWeight.Medium, + color = if (pagerState.currentPage == 2) Color(0xFF000000) else Color(0x993C3C43) + ) + Spacer(modifier = Modifier.height(if (pagerState.currentPage == 2) 6.dp else 4.dp)) + if (pagerState.currentPage == 2) { + Box( + modifier = Modifier + .width(20.dp) + .height(2.dp) + .background(Color(0xFF000000)) + ) + } } } } - - // 下划线指示器 - Row( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp) - ) { - Box( - modifier = Modifier - .weight(1f) - .height(2.dp) - .background( - if (pagerState.currentPage == 0) AppColors.text else Color.Transparent - ) - ) - if (showAgentTab) { - Box( - modifier = Modifier - .weight(1f) - .height(2.dp) - .background( - if (pagerState.currentPage == 1) AppColors.text else Color.Transparent - ) - ) - } - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserItem.kt b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserItem.kt index 75a3583..7fb341a 100644 --- a/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserItem.kt +++ b/app/src/main/java/com/aiosman/ravenow/ui/index/tabs/profile/composable/UserItem.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow @@ -122,7 +123,7 @@ fun UserItem( ) Spacer(modifier = Modifier.height(2.dp)) Text( - text = "帖子", + text = stringResource(R.string.posts), fontWeight = FontWeight.Normal, fontSize = 11.sp, color = Color(0xFF000000), @@ -157,7 +158,7 @@ fun UserItem( ) Spacer(modifier = Modifier.height(2.dp)) Text( - text = "粉丝", + text = stringResource(R.string.followers_upper), fontWeight = FontWeight.Normal, fontSize = 11.sp, color = Color(0xFF000000), @@ -193,7 +194,7 @@ fun UserItem( ) Spacer(modifier = Modifier.height(2.dp)) Text( - text = "关注", + text = stringResource(R.string.following_upper), fontWeight = FontWeight.Normal, fontSize = 11.sp, color = Color(0xFF000000), @@ -273,7 +274,7 @@ fun UserItem( // 编辑标签(仅自己可见) if (isSelf) { ProfileTag( - text = "编辑", + text = stringResource(R.string.edit_profile), backgroundColor = Color(0x14947A80), // 124/255, 116/255, 128/255, alpha 0.08 textColor = Color(0xFF9284BD), // 146/255, 132/255, 189/255 leadingIcon = { @@ -333,7 +334,7 @@ private fun EditIcon( ) { Image( painter = painterResource(id = R.mipmap.bi), - contentDescription = "编辑", + contentDescription = stringResource(R.string.edit_profile), modifier = modifier, colorFilter = ColorFilter.tint(color) ) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 098863d..1d097a0 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -12,6 +12,7 @@ ユーザー いいね フォロワー + 投稿 お気に入り あれ、何もない。.. 通知 @@ -52,6 +53,10 @@ 最高のサービスを提供するために、登録前に利用規約を読み、同意してください。 まだ投稿がありません 今すぐモーメントを投稿 + ストーリーはまだ始まっていません + あなたのストーリーはまだ始まっていません + モーメントを投稿して、世界に挨拶しましょう + 画像がありません プロフィールを編集 シェア ログアウト @@ -151,10 +156,14 @@ グループ 友達 すべて + 公開 + プライベート 人はおしゃべりをしている… AIエージェントチャット AIエージェントチャットがありません AIエージェントと対話してみましょう + 専属AIがあなたを待っています + AIはあなたのパートナーとなり、ツールではありません 私: [画像] [音声] @@ -166,6 +175,7 @@ ユーザー情報の取得に失敗しました: %s グループチャットがありません まだどのグループチャットにも参加していません + 何もありません~ グループチャットメッセージのない宇宙は静かすぎます ホームで興味のあるテーマルームを探してみましょう まだ友達とチャットしていません~ @@ -255,9 +265,28 @@ MBTIタイプ 星座 + カバーを変更 + 自己紹介 + ニックネームは空にできません + ニックネームの長さは3文字以上である必要があります + ニックネームの長さは20文字以下である必要があります + 自己紹介の長さは100文字以下である必要があります + ユーザープロフィールの読み込みに失敗しました。もう一度お試しください 保存 MBTIを選択 星座を選択 + 牡羊座 + 牡牛座 + 双子座 + 蟹座 + 獅子座 + 乙女座 + 天秤座 + 蠍座 + 射手座 + 山羊座 + 水瓶座 + 魚座 さっと動かす diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 8a8875e..d9faf7e 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -12,6 +12,7 @@ 用户 粉丝 + 帖子 收藏 消息 关注 @@ -51,6 +52,10 @@ "为了提供更好的服务,请您在注册前仔细阅读并同意《用户协议》。 " 还没有发布任何动态 发布一个动态吧 + 故事还没开始 + 你的故事还没开始 + 发布一条动态,和世界打个招呼吧 + 暂无图片 编辑 分享 登出 @@ -153,11 +158,15 @@ 群聊 朋友 全部 + 公开 + 私有 咦,什么都没有... 智能体聊天 AI 在等你的开场白 去首页探索一下,主动发起对话! + 专属AI等你召唤 + AI将成为你的伙伴,而不是工具 我: [图片] [语音] @@ -169,6 +178,7 @@ 获取用户信息失败: %s 没有群聊,宇宙好安静 没有群聊消息的宇宙太安静了 + 空空如也~ 在首页探索感兴趣的主题房间 去首页探索感兴趣的高能对话 和朋友,还没有对话哦~ @@ -292,9 +302,28 @@ MBTI 类型 星座 + 更换封面 + 个人简介 + 昵称不能为空 + 昵称长度不能小于3 + 昵称长度不能大于20 + 个人简介长度不能大于100 + 加载用户资料失败,请重试 保存 选择 MBTI 选择星座 + 白羊座 + 金牛座 + 双子座 + 巨蟹座 + 狮子座 + 处女座 + 天秤座 + 天蝎座 + 射手座 + 摩羯座 + 水瓶座 + 双鱼座 扫一扫 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d476d2a..b43786b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,6 +11,7 @@ Users LIKE FOLLOWERS + Posts FAVOURITES Well,nothing NOTIFICATIONS @@ -51,6 +52,10 @@ To provide you with the best service, please read and agree to our User Agreement before registering. You haven\'t left any tracks yet Post a moment now + Your story hasn\'t started yet + Your story hasn\'t started yet + Post a moment and say hello to the world + No image Edit profile share Logout @@ -151,9 +156,13 @@ Friends people chatting now… All + Public + Private Agent Chat No Agent Chat Start chatting with agents + Exclusive AI waiting for you + AI will be your companion, not a tool Me: [Image] [Voice] @@ -165,6 +174,7 @@ Failed to get user info: %s No group chats You have not joined any group chats yet + Nothing here~ The universe is too quiet without group chat messages Explore interesting theme rooms on the homepage Have not chatted with friends yet~ @@ -286,9 +296,28 @@ MBTI Zodiac + Change Cover + Personal Introduction + Nickname cannot be empty + Nickname length cannot be less than 3 + Nickname length cannot be greater than 20 + Bio length cannot be greater than 100 + Failed to load user profile, please try again Save Choose MBTI Choose Zodiac + Aries + Taurus + Gemini + Cancer + Leo + Virgo + Libra + Scorpio + Sagittarius + Capricorn + Aquarius + Pisces Scan QR