Reapply "增加英文日语翻译 修改编辑资料界面无法更改星座mbit"

This reverts commit a057f7f7fd.
This commit is contained in:
2025-11-10 15:13:26 +08:00
parent 6590b09300
commit 2cbd2a975f
11 changed files with 240 additions and 85 deletions

View File

@@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import com.aiosman.ravenow.AppState
import com.aiosman.ravenow.LocalAppTheme import com.aiosman.ravenow.LocalAppTheme
import com.aiosman.ravenow.LocalNavController import com.aiosman.ravenow.LocalNavController
import com.aiosman.ravenow.R import com.aiosman.ravenow.R
@@ -80,6 +81,10 @@ fun MbtiSelectScreen() {
isSelected = mbti == currentMbti, isSelected = mbti == currentMbti,
onClick = { onClick = {
model.mbti = mbti model.mbti = mbti
// 立即保存到本地存储,确保选择后立即生效
AppState.UserId?.let { uid ->
com.aiosman.ravenow.AppStore.setUserMbti(uid, mbti)
}
navController.navigateUp() navController.navigateUp()
} }
) )

View File

@@ -29,24 +29,55 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import com.aiosman.ravenow.AppState
import com.aiosman.ravenow.LocalAppTheme import com.aiosman.ravenow.LocalAppTheme
import com.aiosman.ravenow.LocalNavController import com.aiosman.ravenow.LocalNavController
import com.aiosman.ravenow.R import com.aiosman.ravenow.R
import com.aiosman.ravenow.ui.comment.NoticeScreenHeader import com.aiosman.ravenow.ui.comment.NoticeScreenHeader
// 星座列表 // 星座资源ID列表
val ZODIAC_SIGNS = listOf( 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 @Composable
fun ZodiacSelectScreen() { fun ZodiacSelectScreen() {
val navController = LocalNavController.current val navController = LocalNavController.current
val appColors = LocalAppTheme.current val appColors = LocalAppTheme.current
val model = AccountEditViewModel val model = AccountEditViewModel
val currentZodiac = model.zodiac val currentZodiacResId = findZodiacResId(model.zodiac)
Column( Column(
modifier = Modifier modifier = Modifier
@@ -70,12 +101,20 @@ fun ZodiacSelectScreen() {
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
contentPadding = androidx.compose.foundation.layout.PaddingValues(horizontal = 16.dp, vertical = 8.dp) 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( ZodiacItem(
zodiac = zodiac, zodiac = zodiacText,
isSelected = zodiac == currentZodiac, zodiacResId = zodiacResId,
isSelected = zodiacResId == currentZodiacResId,
onClick = { onClick = {
model.zodiac = zodiac // 保存当前语言的星座文本
model.zodiac = zodiacText
// 立即保存到本地存储,确保选择后立即生效
AppState.UserId?.let { uid ->
com.aiosman.ravenow.AppStore.setUserZodiac(uid, zodiacText)
}
navController.navigateUp() navController.navigateUp()
} }
) )
@@ -88,6 +127,7 @@ fun ZodiacSelectScreen() {
@Composable @Composable
fun ZodiacItem( fun ZodiacItem(
zodiac: String, zodiac: String,
zodiacResId: Int,
isSelected: Boolean, isSelected: Boolean,
onClick: () -> Unit onClick: () -> Unit
) { ) {

View File

@@ -105,9 +105,9 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
val cleanValue = value.replace("\n", "").replace("\r", "") val cleanValue = value.replace("\n", "").replace("\r", "")
model.name = cleanValue model.name = cleanValue
usernameError = when { usernameError = when {
cleanValue.trim().isEmpty() -> "昵称不能为空" cleanValue.trim().isEmpty() -> context.getString(R.string.error_nickname_empty)
cleanValue.length < 3 -> "昵称长度不能小于3" cleanValue.length < 3 -> context.getString(R.string.error_nickname_too_short)
cleanValue.length > 20 -> "昵称长度不能大于20" cleanValue.length > 20 -> context.getString(R.string.error_nickname_too_long)
else -> null else -> null
} }
} }
@@ -119,7 +119,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
val cleanValue = value.replace("\n", "").replace("\r", "") val cleanValue = value.replace("\n", "").replace("\r", "")
model.bio = cleanValue model.bio = cleanValue
bioError = when { bioError = when {
cleanValue.length > 100 -> "个人简介长度不能大于100" cleanValue.length > 100 -> context.getString(R.string.error_bio_too_long)
else -> null else -> null
} }
} }
@@ -244,7 +244,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
tint = Color.White tint = Color.White
) )
Text( Text(
text = "更换封面", text = stringResource(R.string.change_cover),
fontSize = 12.sp, fontSize = 12.sp,
color = Color.White color = Color.White
) )
@@ -288,7 +288,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
// 标题 // 标题
Text( Text(
text = "编辑资料", text = stringResource(R.string.edit_profile_info),
fontSize = 17.sp, fontSize = 17.sp,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.SemiBold,
color = Color.White, color = Color.White,
@@ -365,7 +365,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
) { ) {
// 昵称输入框 // 昵称输入框
ProfileInfoCard( ProfileInfoCard(
label = "昵称", label = stringResource(R.string.nickname),
value = model.name, value = model.name,
placeholder = "Value", placeholder = "Value",
onValueChange = { onNicknameChange(it) }, onValueChange = { onNicknameChange(it) },
@@ -376,7 +376,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
// 个人简介输入框 // 个人简介输入框
ProfileInfoCard( ProfileInfoCard(
label = "个人简介", label = stringResource(R.string.personal_intro),
value = model.bio, value = model.bio,
placeholder = "Welcome to my fantiac word i will show you something about magic", placeholder = "Welcome to my fantiac word i will show you something about magic",
onValueChange = { onBioChange(it) }, onValueChange = { onBioChange(it) },
@@ -394,7 +394,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
) { ) {
// MBTI 类型 // MBTI 类型
ProfileSelectItem( ProfileSelectItem(
label = "MBTI 类型", label = stringResource(R.string.mbti_type),
value = model.mbti ?: "ENFP", value = model.mbti ?: "ENFP",
iconColor = Color(0xFF7C45ED), iconColor = Color(0xFF7C45ED),
iconResDark = null, // TODO: 添加MBTI暗色模式图标 iconResDark = null, // TODO: 添加MBTI暗色模式图标
@@ -417,8 +417,13 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
// 星座(使用当前图标) // 星座(使用当前图标)
ProfileSelectItem( ProfileSelectItem(
label = "星座", label = stringResource(R.string.zodiac),
value = model.zodiac ?: "白羊座", value = model.zodiac?.let { storedZodiac ->
// 尝试找到对应的资源ID并显示当前语言的文本
findZodiacResId(storedZodiac)?.let { resId ->
stringResource(resId)
} ?: storedZodiac // 如果找不到,显示原始存储的值
} ?: stringResource(R.string.zodiac_aries),
iconColor = Color(0xFFFFCC00), iconColor = Color(0xFFFFCC00),
iconResDark = R.mipmap.frame_4, // 星座暗色模式图标 iconResDark = R.mipmap.frame_4, // 星座暗色模式图标
iconResLight = R.mipmap.xingzuo, // 星座亮色模式图标 iconResLight = R.mipmap.xingzuo, // 星座亮色模式图标
@@ -467,7 +472,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
Text( Text(
text = "保存", text = stringResource(R.string.save),
fontSize = 17.sp, fontSize = 17.sp,
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
color = Color.White color = Color.White
@@ -483,7 +488,7 @@ fun AccountEditScreen2(onUpdateBanner: ((Uri, File, Context) -> Unit)? = null,)
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
Text( Text(
text = "加载用户资料失败,请重试", text = stringResource(R.string.error_load_profile_failed),
color = appColors.text color = appColors.text
) )
} }

View File

@@ -199,7 +199,7 @@ fun GalleryGrid(
Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp)) Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp))
Text( Text(
text = "你的故事还没开始", text = stringResource(R.string.your_story_not_started),
fontSize = 16.sp, fontSize = 16.sp,
color = AppColors.text, color = AppColors.text,
fontWeight = FontWeight.W600 fontWeight = FontWeight.W600
@@ -208,7 +208,7 @@ fun GalleryGrid(
Spacer(modifier = Modifier.height(8.dp)) Spacer(modifier = Modifier.height(8.dp))
Text( Text(
text = "发布一条动态,和世界打个招呼吧", text = stringResource(R.string.publish_moment_greeting),
fontSize = 14.sp, fontSize = 14.sp,
color = AppColors.secondaryText, color = AppColors.secondaryText,
fontWeight = FontWeight.W400 fontWeight = FontWeight.W400

View File

@@ -27,6 +27,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
@@ -71,7 +72,7 @@ fun GroupChatEmptyContent() {
// 空状态文本 // 空状态文本
Text( Text(
text = "空空如也~", text = stringResource(R.string.empty_nothing),
fontSize = 16.sp, fontSize = 16.sp,
fontWeight = FontWeight.SemiBold, fontWeight = FontWeight.SemiBold,
color = Color(0xFF000000) color = Color(0xFF000000)
@@ -94,7 +95,7 @@ private fun SegmentedControl(
) { ) {
// 全部 // 全部
SegmentButton( SegmentButton(
text = "全部", text = stringResource(R.string.chat_all),
isSelected = selectedIndex == 0, isSelected = selectedIndex == 0,
onClick = { onSegmentSelected(0) }, onClick = { onSegmentSelected(0) },
width = 54.dp width = 54.dp
@@ -104,7 +105,7 @@ private fun SegmentedControl(
// 公开 // 公开
SegmentButton( SegmentButton(
text = "公开", text = stringResource(R.string.public_label),
isSelected = selectedIndex == 1, isSelected = selectedIndex == 1,
onClick = { onSegmentSelected(1) }, onClick = { onSegmentSelected(1) },
width = 59.dp width = 59.dp
@@ -114,7 +115,7 @@ private fun SegmentedControl(
// 私有 // 私有
SegmentButton( SegmentButton(
text = "私有", text = stringResource(R.string.private_label),
isSelected = selectedIndex == 2, isSelected = selectedIndex == 2,
onClick = { onSegmentSelected(2) }, onClick = { onSegmentSelected(2) },
width = 54.dp width = 54.dp

View File

@@ -247,7 +247,7 @@ fun AgentEmptyContentWithSegments() {
Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp)) Spacer(modifier = Modifier.height(if(AppState.darkMode) 9.dp else 24.dp))
Text( Text(
text = "专属AI等你召唤", text = stringResource(R.string.exclusive_ai_waiting),
fontSize = 16.sp, fontSize = 16.sp,
color = AppColors.text, color = AppColors.text,
fontWeight = FontWeight.W600 fontWeight = FontWeight.W600
@@ -256,7 +256,7 @@ fun AgentEmptyContentWithSegments() {
Spacer(modifier = Modifier.height(8.dp)) Spacer(modifier = Modifier.height(8.dp))
Text( Text(
text = "AI将成为你的伙伴而不是工具", text = stringResource(R.string.ai_companion_not_tool),
fontSize = 14.sp, fontSize = 14.sp,
color = AppColors.secondaryText, color = AppColors.secondaryText,
fontWeight = FontWeight.W400 fontWeight = FontWeight.W400
@@ -311,7 +311,7 @@ private fun AgentSegmentedControl(
) { ) {
// 全部 // 全部
AgentSegmentButton( AgentSegmentButton(
text = "全部", text = stringResource(R.string.chat_all),
isSelected = selectedIndex == 0, isSelected = selectedIndex == 0,
onClick = { onSegmentSelected(0) }, onClick = { onSegmentSelected(0) },
width = 54.dp width = 54.dp
@@ -321,7 +321,7 @@ private fun AgentSegmentedControl(
// 公开 // 公开
AgentSegmentButton( AgentSegmentButton(
text = "公开", text = stringResource(R.string.public_label),
isSelected = selectedIndex == 1, isSelected = selectedIndex == 1,
onClick = { onSegmentSelected(1) }, onClick = { onSegmentSelected(1) },
width = 59.dp width = 59.dp
@@ -331,7 +331,7 @@ private fun AgentSegmentedControl(
// 私有 // 私有
AgentSegmentButton( AgentSegmentButton(
text = "私有", text = stringResource(R.string.private_label),
isSelected = selectedIndex == 2, isSelected = selectedIndex == 2,
onClick = { onSegmentSelected(2) }, onClick = { onSegmentSelected(2) },
width = 54.dp width = 54.dp

View File

@@ -10,21 +10,14 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.pager.PagerState 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.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@@ -52,7 +45,7 @@ fun UserContentPageIndicator(
.padding(horizontal = 16.dp), .padding(horizontal = 16.dp),
horizontalArrangement = Arrangement.SpaceEvenly horizontalArrangement = Arrangement.SpaceEvenly
) { ) {
// 图片/相册 Tab // 动态 Tab
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier modifier = Modifier
@@ -64,15 +57,24 @@ fun UserContentPageIndicator(
} }
.padding(vertical = 12.dp) .padding(vertical = 12.dp)
) { ) {
Icon( Text(
painter = painterResource(id = R.drawable.rider_pro_images), text = stringResource(R.string.index_dynamic),
contentDescription = "Gallery", fontSize = 16.sp,
tint = if (pagerState.currentPage == 0) AppColors.text else AppColors.text.copy(alpha = 0.6f), fontWeight = if (pagerState.currentPage == 0) FontWeight.SemiBold else FontWeight.Medium,
modifier = Modifier.size(24.dp) 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) { if (showAgentTab) {
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
@@ -85,39 +87,53 @@ fun UserContentPageIndicator(
} }
.padding(vertical = 12.dp) .padding(vertical = 12.dp)
) { ) {
Icon( Text(
painter = painterResource(id = R.drawable.rider_pro_nav_ai), text = stringResource(R.string.chat_ai),
contentDescription = "Agents", fontSize = 16.sp,
tint = if (pagerState.currentPage == 1) AppColors.text else AppColors.text.copy(alpha = 0.6f), fontWeight = if (pagerState.currentPage == 1) FontWeight.SemiBold else FontWeight.Medium,
modifier = Modifier.size(24.dp) 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 (只在非智能体用户时显示)
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) { if (showAgentTab) {
Box( Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier modifier = Modifier
.weight(1f) .weight(1f)
.height(2.dp) .noRippleClickable {
.background( scope.launch {
if (pagerState.currentPage == 1) AppColors.text else Color.Transparent 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))
) )
) }
}
} }
} }
} }

View File

@@ -27,6 +27,7 @@ import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
@@ -122,7 +123,7 @@ fun UserItem(
) )
Spacer(modifier = Modifier.height(2.dp)) Spacer(modifier = Modifier.height(2.dp))
Text( Text(
text = "帖子", text = stringResource(R.string.posts),
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
fontSize = 11.sp, fontSize = 11.sp,
color = Color(0xFF000000), color = Color(0xFF000000),
@@ -157,7 +158,7 @@ fun UserItem(
) )
Spacer(modifier = Modifier.height(2.dp)) Spacer(modifier = Modifier.height(2.dp))
Text( Text(
text = "粉丝", text = stringResource(R.string.followers_upper),
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
fontSize = 11.sp, fontSize = 11.sp,
color = Color(0xFF000000), color = Color(0xFF000000),
@@ -193,7 +194,7 @@ fun UserItem(
) )
Spacer(modifier = Modifier.height(2.dp)) Spacer(modifier = Modifier.height(2.dp))
Text( Text(
text = "关注", text = stringResource(R.string.following_upper),
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
fontSize = 11.sp, fontSize = 11.sp,
color = Color(0xFF000000), color = Color(0xFF000000),
@@ -273,7 +274,7 @@ fun UserItem(
// 编辑标签(仅自己可见) // 编辑标签(仅自己可见)
if (isSelf) { if (isSelf) {
ProfileTag( ProfileTag(
text = "编辑", text = stringResource(R.string.edit_profile),
backgroundColor = Color(0x14947A80), // 124/255, 116/255, 128/255, alpha 0.08 backgroundColor = Color(0x14947A80), // 124/255, 116/255, 128/255, alpha 0.08
textColor = Color(0xFF9284BD), // 146/255, 132/255, 189/255 textColor = Color(0xFF9284BD), // 146/255, 132/255, 189/255
leadingIcon = { leadingIcon = {
@@ -333,7 +334,7 @@ private fun EditIcon(
) { ) {
Image( Image(
painter = painterResource(id = R.mipmap.bi), painter = painterResource(id = R.mipmap.bi),
contentDescription = "编辑", contentDescription = stringResource(R.string.edit_profile),
modifier = modifier, modifier = modifier,
colorFilter = ColorFilter.tint(color) colorFilter = ColorFilter.tint(color)
) )

View File

@@ -12,6 +12,7 @@
<string name="users">ユーザー</string> <string name="users">ユーザー</string>
<string name="like_upper">いいね</string> <string name="like_upper">いいね</string>
<string name="followers_upper">フォロワー</string> <string name="followers_upper">フォロワー</string>
<string name="posts">投稿</string>
<string name="favourites_upper">お気に入り</string> <string name="favourites_upper">お気に入り</string>
<string name="favourites_null">あれ、何もない。..</string> <string name="favourites_null">あれ、何もない。..</string>
<string name="notifications_upper">通知</string> <string name="notifications_upper">通知</string>
@@ -52,6 +53,10 @@
<string name="error_not_accept_term">最高のサービスを提供するために、登録前に利用規約を読み、同意してください。</string> <string name="error_not_accept_term">最高のサービスを提供するために、登録前に利用規約を読み、同意してください。</string>
<string name="empty_my_post_title">まだ投稿がありません</string> <string name="empty_my_post_title">まだ投稿がありません</string>
<string name="empty_my_post_content">今すぐモーメントを投稿</string> <string name="empty_my_post_content">今すぐモーメントを投稿</string>
<string name="story_not_started">ストーリーはまだ始まっていません</string>
<string name="your_story_not_started">あなたのストーリーはまだ始まっていません</string>
<string name="publish_moment_greeting">モーメントを投稿して、世界に挨拶しましょう</string>
<string name="no_image">画像がありません</string>
<string name="edit_profile">プロフィールを編集</string> <string name="edit_profile">プロフィールを編集</string>
<string name="share">シェア</string> <string name="share">シェア</string>
<string name="logout">ログアウト</string> <string name="logout">ログアウト</string>
@@ -151,10 +156,14 @@
<string name="chat_group">グループ</string> <string name="chat_group">グループ</string>
<string name="chat_friend">友達</string> <string name="chat_friend">友達</string>
<string name="chat_all">すべて</string> <string name="chat_all">すべて</string>
<string name="public_label">公開</string>
<string name="private_label">プライベート</string>
<string name="chatting_now">人はおしゃべりをしている…</string> <string name="chatting_now">人はおしゃべりをしている…</string>
<string name="agent_chat_list_title">AIエージェントチャット</string> <string name="agent_chat_list_title">AIエージェントチャット</string>
<string name="agent_chat_empty_title">AIエージェントチャットがありません</string> <string name="agent_chat_empty_title">AIエージェントチャットがありません</string>
<string name="agent_chat_empty_subtitle">AIエージェントと対話してみましょう</string> <string name="agent_chat_empty_subtitle">AIエージェントと対話してみましょう</string>
<string name="exclusive_ai_waiting">専属AIがあなたを待っています</string>
<string name="ai_companion_not_tool">AIはあなたのパートナーとなり、ツールではありません</string>
<string name="agent_chat_me_prefix">私: </string> <string name="agent_chat_me_prefix">私: </string>
<string name="agent_chat_image">[画像]</string> <string name="agent_chat_image">[画像]</string>
<string name="agent_chat_voice">[音声]</string> <string name="agent_chat_voice">[音声]</string>
@@ -166,6 +175,7 @@
<string name="agent_chat_user_info_failed">ユーザー情報の取得に失敗しました: %s</string> <string name="agent_chat_user_info_failed">ユーザー情報の取得に失敗しました: %s</string>
<string name="group_chat_empty">グループチャットがありません</string> <string name="group_chat_empty">グループチャットがありません</string>
<string name="group_chat_empty_join">まだどのグループチャットにも参加していません</string> <string name="group_chat_empty_join">まだどのグループチャットにも参加していません</string>
<string name="empty_nothing">何もありません~</string>
<string name="group_chat_empty_title">グループチャットメッセージのない宇宙は静かすぎます</string> <string name="group_chat_empty_title">グループチャットメッセージのない宇宙は静かすぎます</string>
<string name="group_chat_empty_subtitle">ホームで興味のあるテーマルームを探してみましょう</string> <string name="group_chat_empty_subtitle">ホームで興味のあるテーマルームを探してみましょう</string>
<string name="friend_chat_empty_title">まだ友達とチャットしていません~</string> <string name="friend_chat_empty_title">まだ友達とチャットしていません~</string>
@@ -255,9 +265,28 @@
<!-- Edit Profile Extras --> <!-- Edit Profile Extras -->
<string name="mbti_type">MBTIタイプ</string> <string name="mbti_type">MBTIタイプ</string>
<string name="zodiac">星座</string> <string name="zodiac">星座</string>
<string name="change_cover">カバーを変更</string>
<string name="personal_intro">自己紹介</string>
<string name="error_nickname_empty">ニックネームは空にできません</string>
<string name="error_nickname_too_short">ニックネームの長さは3文字以上である必要があります</string>
<string name="error_nickname_too_long">ニックネームの長さは20文字以下である必要があります</string>
<string name="error_bio_too_long">自己紹介の長さは100文字以下である必要があります</string>
<string name="error_load_profile_failed">ユーザープロフィールの読み込みに失敗しました。もう一度お試しください</string>
<string name="save">保存</string> <string name="save">保存</string>
<string name="choose_mbti">MBTIを選択</string> <string name="choose_mbti">MBTIを選択</string>
<string name="choose_zodiac">星座を選択</string> <string name="choose_zodiac">星座を選択</string>
<string name="zodiac_aries">牡羊座</string>
<string name="zodiac_taurus">牡牛座</string>
<string name="zodiac_gemini">双子座</string>
<string name="zodiac_cancer">蟹座</string>
<string name="zodiac_leo">獅子座</string>
<string name="zodiac_virgo">乙女座</string>
<string name="zodiac_libra">天秤座</string>
<string name="zodiac_scorpio">蠍座</string>
<string name="zodiac_sagittarius">射手座</string>
<string name="zodiac_capricorn">山羊座</string>
<string name="zodiac_aquarius">水瓶座</string>
<string name="zodiac_pisces">魚座</string>
<!-- Side Menu --> <!-- Side Menu -->
<string name="scan_qr">さっと動かす</string> <string name="scan_qr">さっと動かす</string>

View File

@@ -12,6 +12,7 @@
<string name="users">用户</string> <string name="users">用户</string>
<string name="like_upper"></string> <string name="like_upper"></string>
<string name="followers_upper">粉丝</string> <string name="followers_upper">粉丝</string>
<string name="posts">帖子</string>
<string name="favourites_upper">收藏</string> <string name="favourites_upper">收藏</string>
<string name="notifications_upper">消息</string> <string name="notifications_upper">消息</string>
<string name="following_upper">关注</string> <string name="following_upper">关注</string>
@@ -51,6 +52,10 @@
<string name="error_not_accept_term">"为了提供更好的服务,请您在注册前仔细阅读并同意《用户协议》。 "</string> <string name="error_not_accept_term">"为了提供更好的服务,请您在注册前仔细阅读并同意《用户协议》。 "</string>
<string name="empty_my_post_title">还没有发布任何动态</string> <string name="empty_my_post_title">还没有发布任何动态</string>
<string name="empty_my_post_content">发布一个动态吧</string> <string name="empty_my_post_content">发布一个动态吧</string>
<string name="story_not_started">故事还没开始</string>
<string name="your_story_not_started">你的故事还没开始</string>
<string name="publish_moment_greeting">发布一条动态,和世界打个招呼吧</string>
<string name="no_image">暂无图片</string>
<string name="edit_profile">编辑</string> <string name="edit_profile">编辑</string>
<string name="share">分享</string> <string name="share">分享</string>
<string name="logout">登出</string> <string name="logout">登出</string>
@@ -153,11 +158,15 @@
<string name="chat_group">群聊</string> <string name="chat_group">群聊</string>
<string name="chat_friend">朋友</string> <string name="chat_friend">朋友</string>
<string name="chat_all">全部</string> <string name="chat_all">全部</string>
<string name="public_label">公开</string>
<string name="private_label">私有</string>
<string name="favourites_null">咦,什么都没有...</string> <string name="favourites_null">咦,什么都没有...</string>
<string name="agent_chat_list_title">智能体聊天</string> <string name="agent_chat_list_title">智能体聊天</string>
<string name="agent_chat_empty_title">AI 在等你的开场白</string> <string name="agent_chat_empty_title">AI 在等你的开场白</string>
<string name="agent_chat_empty_subtitle">去首页探索一下,主动发起对话!</string> <string name="agent_chat_empty_subtitle">去首页探索一下,主动发起对话!</string>
<string name="exclusive_ai_waiting">专属AI等你召唤</string>
<string name="ai_companion_not_tool">AI将成为你的伙伴而不是工具</string>
<string name="agent_chat_me_prefix">我: </string> <string name="agent_chat_me_prefix">我: </string>
<string name="agent_chat_image">[图片]</string> <string name="agent_chat_image">[图片]</string>
<string name="agent_chat_voice">[语音]</string> <string name="agent_chat_voice">[语音]</string>
@@ -169,6 +178,7 @@
<string name="agent_chat_user_info_failed">获取用户信息失败: %s</string> <string name="agent_chat_user_info_failed">获取用户信息失败: %s</string>
<string name="group_chat_empty">没有群聊,宇宙好安静</string> <string name="group_chat_empty">没有群聊,宇宙好安静</string>
<string name="group_chat_empty_title">没有群聊消息的宇宙太安静了</string> <string name="group_chat_empty_title">没有群聊消息的宇宙太安静了</string>
<string name="empty_nothing">空空如也~</string>
<string name="group_chat_empty_subtitle">在首页探索感兴趣的主题房间</string> <string name="group_chat_empty_subtitle">在首页探索感兴趣的主题房间</string>
<string name="group_chat_empty_join">去首页探索感兴趣的高能对话</string> <string name="group_chat_empty_join">去首页探索感兴趣的高能对话</string>
<string name="friend_chat_empty_title">和朋友,还没有对话哦~</string> <string name="friend_chat_empty_title">和朋友,还没有对话哦~</string>
@@ -292,9 +302,28 @@
<!-- Edit Profile Extras --> <!-- Edit Profile Extras -->
<string name="mbti_type">MBTI 类型</string> <string name="mbti_type">MBTI 类型</string>
<string name="zodiac">星座</string> <string name="zodiac">星座</string>
<string name="change_cover">更换封面</string>
<string name="personal_intro">个人简介</string>
<string name="error_nickname_empty">昵称不能为空</string>
<string name="error_nickname_too_short">昵称长度不能小于3</string>
<string name="error_nickname_too_long">昵称长度不能大于20</string>
<string name="error_bio_too_long">个人简介长度不能大于100</string>
<string name="error_load_profile_failed">加载用户资料失败,请重试</string>
<string name="save">保存</string> <string name="save">保存</string>
<string name="choose_mbti">选择 MBTI</string> <string name="choose_mbti">选择 MBTI</string>
<string name="choose_zodiac">选择星座</string> <string name="choose_zodiac">选择星座</string>
<string name="zodiac_aries">白羊座</string>
<string name="zodiac_taurus">金牛座</string>
<string name="zodiac_gemini">双子座</string>
<string name="zodiac_cancer">巨蟹座</string>
<string name="zodiac_leo">狮子座</string>
<string name="zodiac_virgo">处女座</string>
<string name="zodiac_libra">天秤座</string>
<string name="zodiac_scorpio">天蝎座</string>
<string name="zodiac_sagittarius">射手座</string>
<string name="zodiac_capricorn">摩羯座</string>
<string name="zodiac_aquarius">水瓶座</string>
<string name="zodiac_pisces">双鱼座</string>
<!-- Side Menu --> <!-- Side Menu -->
<string name="scan_qr">扫一扫</string> <string name="scan_qr">扫一扫</string>

View File

@@ -11,6 +11,7 @@
<string name="users">Users</string> <string name="users">Users</string>
<string name="like_upper">LIKE</string> <string name="like_upper">LIKE</string>
<string name="followers_upper">FOLLOWERS</string> <string name="followers_upper">FOLLOWERS</string>
<string name="posts">Posts</string>
<string name="favourites_upper">FAVOURITES</string> <string name="favourites_upper">FAVOURITES</string>
<string name="favourites_null">Well,nothing </string> <string name="favourites_null">Well,nothing </string>
<string name="notifications_upper">NOTIFICATIONS</string> <string name="notifications_upper">NOTIFICATIONS</string>
@@ -51,6 +52,10 @@
<string name="error_not_accept_term">To provide you with the best service, please read and agree to our User Agreement before registering.</string> <string name="error_not_accept_term">To provide you with the best service, please read and agree to our User Agreement before registering.</string>
<string name="empty_my_post_title">You haven\'t left any tracks yet</string> <string name="empty_my_post_title">You haven\'t left any tracks yet</string>
<string name="empty_my_post_content">Post a moment now</string> <string name="empty_my_post_content">Post a moment now</string>
<string name="story_not_started">Your story hasn\'t started yet</string>
<string name="your_story_not_started">Your story hasn\'t started yet</string>
<string name="publish_moment_greeting">Post a moment and say hello to the world</string>
<string name="no_image">No image</string>
<string name="edit_profile">Edit profile</string> <string name="edit_profile">Edit profile</string>
<string name="share">share</string> <string name="share">share</string>
<string name="logout">Logout</string> <string name="logout">Logout</string>
@@ -151,9 +156,13 @@
<string name="chat_friend">Friends</string> <string name="chat_friend">Friends</string>
<string name="chatting_now">people chatting now…</string> <string name="chatting_now">people chatting now…</string>
<string name="chat_all">All</string> <string name="chat_all">All</string>
<string name="public_label">Public</string>
<string name="private_label">Private</string>
<string name="agent_chat_list_title">Agent Chat</string> <string name="agent_chat_list_title">Agent Chat</string>
<string name="agent_chat_empty_title">No Agent Chat</string> <string name="agent_chat_empty_title">No Agent Chat</string>
<string name="agent_chat_empty_subtitle">Start chatting with agents</string> <string name="agent_chat_empty_subtitle">Start chatting with agents</string>
<string name="exclusive_ai_waiting">Exclusive AI waiting for you</string>
<string name="ai_companion_not_tool">AI will be your companion, not a tool</string>
<string name="agent_chat_me_prefix">Me: </string> <string name="agent_chat_me_prefix">Me: </string>
<string name="agent_chat_image">[Image]</string> <string name="agent_chat_image">[Image]</string>
<string name="agent_chat_voice">[Voice]</string> <string name="agent_chat_voice">[Voice]</string>
@@ -165,6 +174,7 @@
<string name="agent_chat_user_info_failed">Failed to get user info: %s</string> <string name="agent_chat_user_info_failed">Failed to get user info: %s</string>
<string name="group_chat_empty">No group chats</string> <string name="group_chat_empty">No group chats</string>
<string name="group_chat_empty_join">You have not joined any group chats yet</string> <string name="group_chat_empty_join">You have not joined any group chats yet</string>
<string name="empty_nothing">Nothing here~</string>
<string name="group_chat_empty_title">The universe is too quiet without group chat messages</string> <string name="group_chat_empty_title">The universe is too quiet without group chat messages</string>
<string name="group_chat_empty_subtitle">Explore interesting theme rooms on the homepage</string> <string name="group_chat_empty_subtitle">Explore interesting theme rooms on the homepage</string>
<string name="friend_chat_empty_title">Have not chatted with friends yet~</string> <string name="friend_chat_empty_title">Have not chatted with friends yet~</string>
@@ -286,9 +296,28 @@
<!-- Edit Profile Extras --> <!-- Edit Profile Extras -->
<string name="mbti_type">MBTI</string> <string name="mbti_type">MBTI</string>
<string name="zodiac">Zodiac</string> <string name="zodiac">Zodiac</string>
<string name="change_cover">Change Cover</string>
<string name="personal_intro">Personal Introduction</string>
<string name="error_nickname_empty">Nickname cannot be empty</string>
<string name="error_nickname_too_short">Nickname length cannot be less than 3</string>
<string name="error_nickname_too_long">Nickname length cannot be greater than 20</string>
<string name="error_bio_too_long">Bio length cannot be greater than 100</string>
<string name="error_load_profile_failed">Failed to load user profile, please try again</string>
<string name="save">Save</string> <string name="save">Save</string>
<string name="choose_mbti">Choose MBTI</string> <string name="choose_mbti">Choose MBTI</string>
<string name="choose_zodiac">Choose Zodiac</string> <string name="choose_zodiac">Choose Zodiac</string>
<string name="zodiac_aries">Aries</string>
<string name="zodiac_taurus">Taurus</string>
<string name="zodiac_gemini">Gemini</string>
<string name="zodiac_cancer">Cancer</string>
<string name="zodiac_leo">Leo</string>
<string name="zodiac_virgo">Virgo</string>
<string name="zodiac_libra">Libra</string>
<string name="zodiac_scorpio">Scorpio</string>
<string name="zodiac_sagittarius">Sagittarius</string>
<string name="zodiac_capricorn">Capricorn</string>
<string name="zodiac_aquarius">Aquarius</string>
<string name="zodiac_pisces">Pisces</string>
<!-- Side Menu --> <!-- Side Menu -->
<string name="scan_qr">Scan QR</string> <string name="scan_qr">Scan QR</string>