Compare commits
5 Commits
main
...
feat/pr-20
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a19d4c60e | |||
| a057f7f7fd | |||
| f95c0204ee | |||
| c5156a5f6c | |||
| de85f35c45 |
@@ -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()
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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
|
||||
) {
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 下划线指示器
|
||||
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
|
||||
)
|
||||
)
|
||||
// 群聊 Tab (只在非智能体用户时显示)
|
||||
if (showAgentTab) {
|
||||
Box(
|
||||
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(
|
||||
if (pagerState.currentPage == 1) AppColors.text else Color.Transparent
|
||||
)
|
||||
.background(Color(0xFF000000))
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<string name="users">ユーザー</string>
|
||||
<string name="like_upper">いいね</string>
|
||||
<string name="followers_upper">フォロワー</string>
|
||||
<string name="posts">投稿</string>
|
||||
<string name="favourites_upper">お気に入り</string>
|
||||
<string name="favourites_null">あれ、何もない。..</string>
|
||||
<string name="notifications_upper">通知</string>
|
||||
@@ -52,6 +53,10 @@
|
||||
<string name="error_not_accept_term">最高のサービスを提供するために、登録前に利用規約を読み、同意してください。</string>
|
||||
<string name="empty_my_post_title">まだ投稿がありません</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="share">シェア</string>
|
||||
<string name="logout">ログアウト</string>
|
||||
@@ -151,10 +156,14 @@
|
||||
<string name="chat_group">グループ</string>
|
||||
<string name="chat_friend">友達</string>
|
||||
<string name="chat_all">すべて</string>
|
||||
<string name="public_label">公開</string>
|
||||
<string name="private_label">プライベート</string>
|
||||
<string name="chatting_now">人はおしゃべりをしている…</string>
|
||||
<string name="agent_chat_list_title">AIエージェントチャット</string>
|
||||
<string name="agent_chat_empty_title">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_image">[画像]</string>
|
||||
<string name="agent_chat_voice">[音声]</string>
|
||||
@@ -166,6 +175,7 @@
|
||||
<string name="agent_chat_user_info_failed">ユーザー情報の取得に失敗しました: %s</string>
|
||||
<string name="group_chat_empty">グループチャットがありません</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_subtitle">ホームで興味のあるテーマルームを探してみましょう</string>
|
||||
<string name="friend_chat_empty_title">まだ友達とチャットしていません~</string>
|
||||
@@ -255,9 +265,28 @@
|
||||
<!-- Edit Profile Extras -->
|
||||
<string name="mbti_type">MBTIタイプ</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="choose_mbti">MBTIを選択</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 -->
|
||||
<string name="scan_qr">さっと動かす</string>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<string name="users">用户</string>
|
||||
<string name="like_upper">赞</string>
|
||||
<string name="followers_upper">粉丝</string>
|
||||
<string name="posts">帖子</string>
|
||||
<string name="favourites_upper">收藏</string>
|
||||
<string name="notifications_upper">消息</string>
|
||||
<string name="following_upper">关注</string>
|
||||
@@ -51,6 +52,10 @@
|
||||
<string name="error_not_accept_term">"为了提供更好的服务,请您在注册前仔细阅读并同意《用户协议》。 "</string>
|
||||
<string name="empty_my_post_title">还没有发布任何动态</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="share">分享</string>
|
||||
<string name="logout">登出</string>
|
||||
@@ -153,11 +158,15 @@
|
||||
<string name="chat_group">群聊</string>
|
||||
<string name="chat_friend">朋友</string>
|
||||
<string name="chat_all">全部</string>
|
||||
<string name="public_label">公开</string>
|
||||
<string name="private_label">私有</string>
|
||||
<string name="favourites_null">咦,什么都没有...</string>
|
||||
|
||||
<string name="agent_chat_list_title">智能体聊天</string>
|
||||
<string name="agent_chat_empty_title">AI 在等你的开场白</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_image">[图片]</string>
|
||||
<string name="agent_chat_voice">[语音]</string>
|
||||
@@ -169,6 +178,7 @@
|
||||
<string name="agent_chat_user_info_failed">获取用户信息失败: %s</string>
|
||||
<string name="group_chat_empty">没有群聊,宇宙好安静</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_join">去首页探索感兴趣的高能对话</string>
|
||||
<string name="friend_chat_empty_title">和朋友,还没有对话哦~</string>
|
||||
@@ -292,9 +302,28 @@
|
||||
<!-- Edit Profile Extras -->
|
||||
<string name="mbti_type">MBTI 类型</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="choose_mbti">选择 MBTI</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 -->
|
||||
<string name="scan_qr">扫一扫</string>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<string name="users">Users</string>
|
||||
<string name="like_upper">LIKE</string>
|
||||
<string name="followers_upper">FOLLOWERS</string>
|
||||
<string name="posts">Posts</string>
|
||||
<string name="favourites_upper">FAVOURITES</string>
|
||||
<string name="favourites_null">Well,nothing </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="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="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="share">share</string>
|
||||
<string name="logout">Logout</string>
|
||||
@@ -151,9 +156,13 @@
|
||||
<string name="chat_friend">Friends</string>
|
||||
<string name="chatting_now">people chatting now…</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_empty_title">No Agent Chat</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_image">[Image]</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="group_chat_empty">No group chats</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_subtitle">Explore interesting theme rooms on the homepage</string>
|
||||
<string name="friend_chat_empty_title">Have not chatted with friends yet~</string>
|
||||
@@ -286,9 +296,28 @@
|
||||
<!-- Edit Profile Extras -->
|
||||
<string name="mbti_type">MBTI</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="choose_mbti">Choose MBTI</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 -->
|
||||
<string name="scan_qr">Scan QR</string>
|
||||
|
||||
Reference in New Issue
Block a user