라이브룸 하위 어댑터 문자열 리소스화

This commit is contained in:
2025-12-02 18:44:50 +09:00
parent 4ed6437ce3
commit 6bd63fc751
13 changed files with 186 additions and 71 deletions

View File

@@ -1692,7 +1692,8 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
nickname, nickname,
message.message, message.message,
message.can, message.can,
message.donationMessage ?: "" message.donationMessage ?: "",
isSecret = false
) )
) )
invalidateChat() invalidateChat()
@@ -1754,7 +1755,8 @@ class LiveRoomActivity : BaseActivity<ActivityLiveRoomBinding>(ActivityLiveRoomB
nickname, nickname,
message.message, message.message,
message.can, message.can,
message.donationMessage ?: "" message.donationMessage ?: "",
isSecret = true
) )
) )
invalidateChat() invalidateChat()

View File

@@ -52,27 +52,31 @@ data class LiveRoomJoinChat(
(binding as ItemLiveRoomJoinChatBinding).tvJoin.setTextColor( (binding as ItemLiveRoomJoinChatBinding).tvJoin.setTextColor(
ContextCompat.getColor(context, R.color.color_eeeeee) ContextCompat.getColor(context, R.color.color_eeeeee)
) )
val str = "'$nickname'님이 입장하셨습니다." val joinText = context.getString(R.string.screen_live_room_join, nickname)
val spStr = SpannableString(str) val spStr = SpannableString(joinText)
val nicknameStart = joinText.indexOf(nickname).takeIf { it >= 0 }
val nicknameEnd = nicknameStart?.plus(nickname.length)
spStr.setSpan( if (nicknameStart != null && nicknameEnd != null) {
ForegroundColorSpan( spStr.setSpan(
ContextCompat.getColor( ForegroundColorSpan(
context, ContextCompat.getColor(
R.color.color_ffdc00 context,
) R.color.color_ffdc00
), )
str.indexOf("'") + 1, ),
str.indexOf("'님"), nicknameStart,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE nicknameEnd,
) Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
spStr.setSpan( spStr.setSpan(
StyleSpan(Typeface.BOLD), StyleSpan(Typeface.BOLD),
str.indexOf("'"), nicknameStart,
str.indexOf("'님"), nicknameEnd,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
) )
}
(binding as ItemLiveRoomJoinChatBinding).tvJoin.text = spStr (binding as ItemLiveRoomJoinChatBinding).tvJoin.text = spStr
binding.root.setBackgroundResource(R.drawable.bg_round_corner_4_7_cc004462) binding.root.setBackgroundResource(R.drawable.bg_round_corner_4_7_cc004462)
@@ -115,7 +119,8 @@ data class LiveRoomNormalChat(
itemBinding.tvCreatorOrManager.setBackgroundResource( itemBinding.tvCreatorOrManager.setBackgroundResource(
R.drawable.bg_round_corner_2_4999e3 R.drawable.bg_round_corner_2_4999e3
) )
itemBinding.tvCreatorOrManager.text = "스탭" itemBinding.tvCreatorOrManager.text =
context.getString(R.string.screen_live_room_staff_label)
itemBinding.ivCrown.visibility = View.VISIBLE itemBinding.ivCrown.visibility = View.VISIBLE
itemBinding.tvCreatorOrManager.visibility = View.VISIBLE itemBinding.tvCreatorOrManager.visibility = View.VISIBLE
@@ -179,25 +184,43 @@ data class LiveRoomDonationChat(
@SerializedName("nickname") val nickname: String, @SerializedName("nickname") val nickname: String,
@SerializedName("chat") val chat: String, @SerializedName("chat") val chat: String,
@SerializedName("can") val can: Int, @SerializedName("can") val can: Int,
@SerializedName("donationMessage") val donationMessage: String @SerializedName("donationMessage") val donationMessage: String,
val isSecret: Boolean = false
) : LiveRoomChat() { ) : LiveRoomChat() {
@SuppressLint("SetTextI18n")
override fun bind(context: Context, binding: ViewBinding, onClickProfile: ((Long) -> Unit)?) { override fun bind(context: Context, binding: ViewBinding, onClickProfile: ((Long) -> Unit)?) {
val itemBinding = binding as ItemLiveRoomChatBinding val itemBinding = binding as ItemLiveRoomChatBinding
val spChat = SpannableString(chat) val donationText = context.getString(
spChat.setSpan( if (isSecret) {
ForegroundColorSpan( R.string.screen_live_room_secret_mission_sent
ContextCompat.getColor( } else {
context, R.string.screen_live_room_donation_sent
R.color.color_fdca2f },
) can.toString()
),
0,
chat.indexOf("", 0, true) + 1,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
) )
val spChat = SpannableString(donationText)
val unit = context.getString(R.string.screen_live_room_can_unit)
val amountStart = donationText.indexOf(can.toString()).takeIf { it >= 0 }
val amountEnd = amountStart?.let { start ->
donationText.indexOf(unit, start).takeIf { it >= 0 }?.plus(unit.length)
?: start + can.toString().length
}
if (amountStart != null && amountEnd != null) {
spChat.setSpan(
ForegroundColorSpan(
ContextCompat.getColor(
context,
R.color.color_fdca2f
)
),
amountStart,
amountEnd,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
)
}
val spNickname = SpannableString("${nickname}님이") val spNickname = SpannableString(
context.getString(R.string.screen_live_room_donation_sender, nickname)
)
spNickname.setSpan( spNickname.setSpan(
CustomTypefaceSpan( CustomTypefaceSpan(
ResourcesCompat.getFont( ResourcesCompat.getFont(
@@ -226,7 +249,10 @@ data class LiveRoomDonationChat(
itemBinding.tvCreatorOrManager.visibility = View.GONE itemBinding.tvCreatorOrManager.visibility = View.GONE
if (donationMessage.isNotBlank()) { if (donationMessage.isNotBlank()) {
itemBinding.tvDonationMessage.text = "\"$donationMessage\"" itemBinding.tvDonationMessage.text = context.getString(
R.string.screen_live_room_donation_message_format,
donationMessage
)
itemBinding.tvDonationMessage.visibility = View.VISIBLE itemBinding.tvDonationMessage.visibility = View.VISIBLE
} else { } else {
itemBinding.tvDonationMessage.visibility = View.GONE itemBinding.tvDonationMessage.visibility = View.GONE
@@ -235,7 +261,7 @@ data class LiveRoomDonationChat(
itemBinding.llMessageBg.setPadding(0) itemBinding.llMessageBg.setPadding(0)
itemBinding.llMessageBg.background = null itemBinding.llMessageBg.background = null
if (spChat.contains("비밀")) { if (isSecret) {
itemBinding.root.setBackgroundResource(R.drawable.bg_round_corner_6_7_cc59548f) itemBinding.root.setBackgroundResource(R.drawable.bg_round_corner_6_7_cc59548f)
} else { } else {
itemBinding.root.setBackgroundResource( itemBinding.root.setBackgroundResource(
@@ -282,7 +308,10 @@ data class LiveRoomRouletteDonationChat(
) : LiveRoomChat() { ) : LiveRoomChat() {
override fun bind(context: Context, binding: ViewBinding, onClickProfile: ((Long) -> Unit)?) { override fun bind(context: Context, binding: ViewBinding, onClickProfile: ((Long) -> Unit)?) {
val itemBinding = binding as ItemLiveRoomChatBinding val itemBinding = binding as ItemLiveRoomChatBinding
val chat = "[$rouletteResult] 당첨!" val chat = context.getString(
R.string.screen_live_room_roulette_win,
rouletteResult
)
val spChat = SpannableString(chat) val spChat = SpannableString(chat)
spChat.setSpan( spChat.setSpan(
ForegroundColorSpan( ForegroundColorSpan(
@@ -296,7 +325,12 @@ data class LiveRoomRouletteDonationChat(
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
) )
val spNickname = SpannableString("${nickname}님의 룰렛 결과?") val spNickname = SpannableString(
context.getString(
R.string.screen_live_room_roulette_sender,
nickname
)
)
spNickname.setSpan( spNickname.setSpan(
StyleSpan(Typeface.NORMAL), StyleSpan(Typeface.NORMAL),
0, 0,

View File

@@ -59,13 +59,13 @@ class LiveRoomDonationDialog(
if (isSecret && can < 10) { if (isSecret && can < 10) {
Toast.makeText( Toast.makeText(
activity, activity,
"비밀 미션은 최소 10캔 이상부터 이용이 가능합니다.", activity.getString(R.string.screen_live_room_secret_mission_minimum),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
} else if (can < 1) { } else if (can < 1) {
Toast.makeText( Toast.makeText(
activity, activity,
"1캔 이상 후원하실 수 있습니다.", activity.getString(R.string.screen_live_room_donation_minimum),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
} else { } else {
@@ -79,7 +79,7 @@ class LiveRoomDonationDialog(
} else { } else {
Toast.makeText( Toast.makeText(
activity, activity,
"1캔 이상 후원하실 수 있습니다.", activity.getString(R.string.screen_live_room_donation_minimum),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
} }
@@ -87,7 +87,7 @@ class LiveRoomDonationDialog(
} catch (e: NumberFormatException) { } catch (e: NumberFormatException) {
Toast.makeText( Toast.makeText(
activity, activity,
"1캔 이상 후원하실 수 있습니다.", activity.getString(R.string.screen_live_room_donation_minimum),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
} }
@@ -99,14 +99,14 @@ class LiveRoomDonationDialog(
val isSelected = dialogView.tvSecret.isSelected val isSelected = dialogView.tvSecret.isSelected
dialogView.tvSecret.isSelected = !isSelected dialogView.tvSecret.isSelected = !isSelected
dialogView.etDonationMessage.hint = if (!isSelected) { dialogView.etDonationMessage.hint = if (!isSelected) {
"비밀 미션을 입력하세요(최대 1000자)" activity.getString(R.string.screen_live_room_secret_mission_hint)
} else { } else {
"함께 보낼 메시지 입력(최대 1000자)" activity.getString(R.string.screen_live_room_donation_message_hint)
} }
dialogView.etDonationCan.hint = if (!isSelected) { dialogView.etDonationCan.hint = if (!isSelected) {
"10캔 이상 입력하세요" activity.getString(R.string.screen_live_room_secret_mission_input_min)
} else { } else {
"1캔 이상 입력하세요" activity.getString(R.string.screen_live_room_donation_input_min)
} }
} }
dialogView.tvSecret.isSelected = false dialogView.tvSecret.isSelected = false

View File

@@ -26,7 +26,10 @@ class LiveRoomDonationMessageAdapter(
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
fun bind(item: LiveRoomDonationMessage) { fun bind(item: LiveRoomDonationMessage) {
if (item.canMessage.isNotBlank()) { if (item.canMessage.isNotBlank()) {
binding.tvNickname.text = "${item.nickname}님이" binding.tvNickname.text = binding.root.context.getString(
R.string.screen_live_room_donation_sender,
item.nickname
)
binding.tvCanMessage.text = item.canMessage binding.tvCanMessage.text = item.canMessage
binding.tvCanMessage.visibility = View.VISIBLE binding.tvCanMessage.visibility = View.VISIBLE
binding.root.setBackgroundResource( binding.root.setBackgroundResource(
@@ -37,11 +40,17 @@ class LiveRoomDonationMessageAdapter(
} }
) )
} else { } else {
binding.tvNickname.text = "${item.nickname}님의 룰렛 결과?" binding.tvNickname.text = binding.root.context.getString(
R.string.screen_live_room_roulette_sender,
item.nickname
)
binding.tvCanMessage.visibility = View.GONE binding.tvCanMessage.visibility = View.GONE
binding.root.setBackgroundResource(R.drawable.bg_round_corner_5_3_ccc25264) binding.root.setBackgroundResource(R.drawable.bg_round_corner_5_3_ccc25264)
} }
binding.tvDonationMessage.text = "\"${item.donationMessage}\"" binding.tvDonationMessage.text = binding.root.context.getString(
R.string.screen_live_room_donation_message_format,
item.donationMessage
)
if ( if (
creatorId == SharedPreferenceManager.userId && creatorId == SharedPreferenceManager.userId &&

View File

@@ -5,6 +5,7 @@ import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.databinding.ItemLiveRoomListProfileBinding import kr.co.vividnext.sodalive.databinding.ItemLiveRoomListProfileBinding
import kr.co.vividnext.sodalive.databinding.ItemLiveRoomProfileHeaderBinding import kr.co.vividnext.sodalive.databinding.ItemLiveRoomProfileHeaderBinding
import kr.co.vividnext.sodalive.databinding.ItemLiveRoomProfileManagerBinding import kr.co.vividnext.sodalive.databinding.ItemLiveRoomProfileManagerBinding
@@ -55,7 +56,7 @@ class LiveRoomProfileAdapter(
items.add( items.add(
1, 1,
LiveRoomProfileItemSpeakerTitle( LiveRoomProfileItemSpeakerTitle(
"스피커", R.string.screen_live_room_speaker_label,
speakerCount = speakers.size - 1, speakerCount = speakers.size - 1,
totalUserCount = totalUserCount totalUserCount = totalUserCount
) )
@@ -64,7 +65,7 @@ class LiveRoomProfileAdapter(
items.add( items.add(
1, 1,
LiveRoomProfileItemManagerTitle( LiveRoomProfileItemManagerTitle(
"스탭", R.string.screen_live_room_staff_label,
managerCount = managers.size managerCount = managers.size
) )
) )
@@ -79,7 +80,11 @@ class LiveRoomProfileAdapter(
items.add(index = index + 2, item) items.add(index = index + 2, item)
} }
items.add(LiveRoomProfileItemListenerTitle("리스너")) items.add(
LiveRoomProfileItemListenerTitle(
R.string.screen_live_room_listener_label
)
)
listeners.forEach { listeners.forEach {
val item = LiveRoomProfileItemUser( val item = LiveRoomProfileItemUser(

View File

@@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.live.room.profile
import android.view.View import android.view.View
import androidx.annotation.Keep import androidx.annotation.Keep
import androidx.annotation.StringRes
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import coil.load import coil.load
@@ -51,14 +52,14 @@ abstract class LiveRoomProfileItem {
@Keep @Keep
data class LiveRoomProfileItemSpeakerTitle( data class LiveRoomProfileItemSpeakerTitle(
val title: String, @StringRes val titleResId: Int,
val speakerCount: Int, val speakerCount: Int,
val totalUserCount: Int val totalUserCount: Int
) : LiveRoomProfileItem() { ) : LiveRoomProfileItem() {
override var type = LiveRoomProfileItemType.SPEAKER_TITLE override var type = LiveRoomProfileItemType.SPEAKER_TITLE
override fun bind(binding: ViewBinding) { override fun bind(binding: ViewBinding) {
val itemBinding = binding as ItemLiveRoomProfileHeaderBinding val itemBinding = binding as ItemLiveRoomProfileHeaderBinding
itemBinding.tvTitle.text = title itemBinding.tvTitle.setText(titleResId)
itemBinding.tvSpeakerCount.text = "$speakerCount" itemBinding.tvSpeakerCount.text = "$speakerCount"
itemBinding.tvSpeakerTotalCount.text = if (totalUserCount > 5) { itemBinding.tvSpeakerTotalCount.text = if (totalUserCount > 5) {
"/5" "/5"
@@ -77,12 +78,12 @@ data class LiveRoomProfileItemSpeakerTitle(
@Keep @Keep
data class LiveRoomProfileItemListenerTitle( data class LiveRoomProfileItemListenerTitle(
val title: String @StringRes val titleResId: Int
) : LiveRoomProfileItem() { ) : LiveRoomProfileItem() {
override var type = LiveRoomProfileItemType.LISTENER_TITLE override var type = LiveRoomProfileItemType.LISTENER_TITLE
override fun bind(binding: ViewBinding) { override fun bind(binding: ViewBinding) {
val itemBinding = binding as ItemLiveRoomProfileHeaderBinding val itemBinding = binding as ItemLiveRoomProfileHeaderBinding
itemBinding.tvTitle.text = title itemBinding.tvTitle.setText(titleResId)
itemBinding.tvSpeakerCount.visibility = View.GONE itemBinding.tvSpeakerCount.visibility = View.GONE
itemBinding.tvSpeakerTotalCount.visibility = View.GONE itemBinding.tvSpeakerTotalCount.visibility = View.GONE
@@ -95,13 +96,13 @@ data class LiveRoomProfileItemListenerTitle(
@Keep @Keep
data class LiveRoomProfileItemManagerTitle( data class LiveRoomProfileItemManagerTitle(
val title: String, @StringRes val titleResId: Int,
val managerCount: Int val managerCount: Int
) : LiveRoomProfileItem() { ) : LiveRoomProfileItem() {
override var type = LiveRoomProfileItemType.MANAGER_TITLE override var type = LiveRoomProfileItemType.MANAGER_TITLE
override fun bind(binding: ViewBinding) { override fun bind(binding: ViewBinding) {
val itemBinding = binding as ItemLiveRoomProfileHeaderBinding val itemBinding = binding as ItemLiveRoomProfileHeaderBinding
itemBinding.tvTitle.text = title itemBinding.tvTitle.setText(titleResId)
itemBinding.tvSpeakerCount.text = "$managerCount" itemBinding.tvSpeakerCount.text = "$managerCount"
itemBinding.tvSpeakerCount.visibility = View.VISIBLE itemBinding.tvSpeakerCount.visibility = View.VISIBLE
itemBinding.tvSpeakerTotalCount.visibility = View.GONE itemBinding.tvSpeakerTotalCount.visibility = View.GONE

View File

@@ -99,13 +99,17 @@ class LiveRoomUserProfileDialog(
dialogView.tvInviteSpeaker.visibility = View.VISIBLE dialogView.tvInviteSpeaker.visibility = View.VISIBLE
if (userProfile.isSpeaker) { if (userProfile.isSpeaker) {
dialogView.tvInviteSpeaker.text = "리스너 변경" dialogView.tvInviteSpeaker.setText(
R.string.screen_live_room_change_to_listener
)
dialogView.tvInviteSpeaker.setOnClickListener { dialogView.tvInviteSpeaker.setOnClickListener {
onClickChangeListener(userProfile.userId) onClickChangeListener(userProfile.userId)
alertDialog.dismiss() alertDialog.dismiss()
} }
} else { } else {
dialogView.tvInviteSpeaker.text = "스피커 초대" dialogView.tvInviteSpeaker.setText(
R.string.screen_live_room_invite_speaker
)
dialogView.tvInviteSpeaker.setOnClickListener { dialogView.tvInviteSpeaker.setOnClickListener {
onClickInviteSpeaker(userProfile.userId) onClickInviteSpeaker(userProfile.userId)
alertDialog.dismiss() alertDialog.dismiss()
@@ -121,13 +125,13 @@ class LiveRoomUserProfileDialog(
dialogView.tvNoChatting.visibility = View.VISIBLE dialogView.tvNoChatting.visibility = View.VISIBLE
if (userProfile.isManager) { if (userProfile.isManager) {
dialogView.tvSetManager.text = "스탭 해제" dialogView.tvSetManager.setText(R.string.screen_live_room_unset_manager)
dialogView.tvSetManager.setOnClickListener { dialogView.tvSetManager.setOnClickListener {
onClickReleaseManager(userProfile.userId) onClickReleaseManager(userProfile.userId)
alertDialog.dismiss() alertDialog.dismiss()
} }
} else { } else {
dialogView.tvSetManager.text = "스탭 지정" dialogView.tvSetManager.setText(R.string.screen_live_room_set_manager)
dialogView.tvSetManager.setOnClickListener { dialogView.tvSetManager.setOnClickListener {
onClickSetManager(userProfile.userId) onClickSetManager(userProfile.userId)
alertDialog.dismiss() alertDialog.dismiss()

View File

@@ -102,7 +102,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="end" android:gravity="end"
android:text="" android:text="@string/screen_live_room_can_unit"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="10.7sp" android:textSize="10.7sp"
tools:ignore="SmallSp" /> tools:ignore="SmallSp" />
@@ -124,7 +124,7 @@
android:gravity="end" android:gravity="end"
android:paddingHorizontal="3.33dp" android:paddingHorizontal="3.33dp"
android:paddingVertical="2.67dp" android:paddingVertical="2.67dp"
android:text="비밀" android:text="@string/screen_live_room_secret_label"
android:textColor="@color/color_111111" android:textColor="@color/color_111111"
android:textSize="12sp" android:textSize="12sp"
tools:ignore="SmallSp" /> tools:ignore="SmallSp" />
@@ -145,7 +145,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="end" android:gravity="end"
android:text="" android:text="@string/screen_live_room_can_unit"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="10.7sp" android:textSize="10.7sp"
tools:ignore="SmallSp" /> tools:ignore="SmallSp" />

View File

@@ -98,7 +98,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="end" android:gravity="end"
android:text="하트" android:text="@string/screen_live_room_heart_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="10.7sp" android:textSize="10.7sp"
tools:ignore="SmallSp" /> tools:ignore="SmallSp" />

View File

@@ -49,7 +49,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.5dp" android:paddingHorizontal="5.5dp"
android:paddingVertical="12dp" android:paddingVertical="12dp"
android:text="리스너로 변경" android:text="@string/screen_live_room_change_to_listener"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="10sp" android:textSize="10sp"
android:visibility="gone" android:visibility="gone"
@@ -63,7 +63,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.5dp" android:paddingHorizontal="5.5dp"
android:paddingVertical="12dp" android:paddingVertical="12dp"
android:text="스피커로 초대" android:text="@string/screen_live_room_invite_speaker"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="10sp" android:textSize="10sp"
android:visibility="gone" android:visibility="gone"
@@ -78,7 +78,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.5dp" android:paddingHorizontal="5.5dp"
android:paddingVertical="12dp" android:paddingVertical="12dp"
android:text="채금" android:text="@string/screen_live_room_chat_ban_short"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="10sp" android:textSize="10sp"
android:visibility="gone" android:visibility="gone"

View File

@@ -394,6 +394,26 @@
<string name="screen_live_room_participants">Participants</string> <string name="screen_live_room_participants">Participants</string>
<string name="screen_live_room_new_chat">New chat</string> <string name="screen_live_room_new_chat">New chat</string>
<string name="screen_live_room_chat_hint">Enter a message</string> <string name="screen_live_room_chat_hint">Enter a message</string>
<string name="screen_live_room_join">%1$s joined.</string>
<string name="screen_live_room_staff_label">Staff</string>
<string name="screen_live_room_can_unit">cans</string>
<string name="screen_live_room_donation_message_format">"%1$s"</string>
<string name="screen_live_room_donation_sender">%1$s</string>
<string name="screen_live_room_roulette_sender">%1$s\u2019s roulette result?</string>
<string name="screen_live_room_roulette_win">[%1$s] Win!</string>
<string name="screen_live_room_heart_label">Hearts</string>
<string name="screen_live_room_secret_label">Secret</string>
<string name="screen_live_room_change_to_listener">Change to listener</string>
<string name="screen_live_room_invite_speaker">Invite to speaker</string>
<string name="screen_live_room_chat_ban_short">Mute</string>
<string name="screen_live_room_set_manager">Set as staff</string>
<string name="screen_live_room_unset_manager">Remove staff</string>
<string name="screen_live_room_speaker_label">Speaker</string>
<string name="screen_live_room_listener_label">Listener</string>
<string name="screen_live_room_secret_mission_hint">Enter a secret mission (up to 1000 chars)</string>
<string name="screen_live_room_donation_message_hint">Enter a message to send (up to 1000 chars)</string>
<string name="screen_live_room_secret_mission_input_min">Enter 10 or more cans</string>
<string name="screen_live_room_donation_input_min">Enter at least 1 can</string>
<string name="screen_my_notice_more">Details</string> <string name="screen_my_notice_more">Details</string>
<string name="screen_my_login">Login</string> <string name="screen_my_login">Login</string>
<string name="screen_my_edit_profile">Edit profile</string> <string name="screen_my_edit_profile">Edit profile</string>

View File

@@ -394,6 +394,26 @@
<string name="screen_live_room_participants">参加者</string> <string name="screen_live_room_participants">参加者</string>
<string name="screen_live_room_new_chat">新しいチャット</string> <string name="screen_live_room_new_chat">新しいチャット</string>
<string name="screen_live_room_chat_hint">チャットを入力してください</string> <string name="screen_live_room_chat_hint">チャットを入力してください</string>
<string name="screen_live_room_join">%1$sさんが入場しました。</string>
<string name="screen_live_room_staff_label">スタッフ</string>
<string name="screen_live_room_can_unit">CAN</string>
<string name="screen_live_room_donation_message_format">"%1$s"</string>
<string name="screen_live_room_donation_sender">%1$sさんが</string>
<string name="screen_live_room_roulette_sender">%1$sさんのルーレット結果</string>
<string name="screen_live_room_roulette_win">[%1$s] 当選!</string>
<string name="screen_live_room_heart_label">ハート</string>
<string name="screen_live_room_secret_label">シークレット</string>
<string name="screen_live_room_change_to_listener">リスナーに変更</string>
<string name="screen_live_room_invite_speaker">スピーカー招待</string>
<string name="screen_live_room_chat_ban_short">チャ禁</string>
<string name="screen_live_room_set_manager">スタッフに設定</string>
<string name="screen_live_room_unset_manager">スタッフ解除</string>
<string name="screen_live_room_speaker_label">スピーカー</string>
<string name="screen_live_room_listener_label">リスナー</string>
<string name="screen_live_room_secret_mission_hint">シークレットミッションを入力最大1000文字</string>
<string name="screen_live_room_donation_message_hint">一緒に送るメッセージを入力最大1000文字</string>
<string name="screen_live_room_secret_mission_input_min">10CAN以上を入力してください</string>
<string name="screen_live_room_donation_input_min">1CAN以上を入力してください</string>
<string name="screen_my_notice_more">詳細</string> <string name="screen_my_notice_more">詳細</string>
<string name="screen_my_login">ログイン</string> <string name="screen_my_login">ログイン</string>
<string name="screen_my_edit_profile">プロフィール編集</string> <string name="screen_my_edit_profile">プロフィール編集</string>

View File

@@ -393,6 +393,26 @@
<string name="screen_live_room_participants">참여자</string> <string name="screen_live_room_participants">참여자</string>
<string name="screen_live_room_new_chat">새로운 채팅</string> <string name="screen_live_room_new_chat">새로운 채팅</string>
<string name="screen_live_room_chat_hint">채팅을 입력하세요</string> <string name="screen_live_room_chat_hint">채팅을 입력하세요</string>
<string name="screen_live_room_join">%1$s님이 입장하셨습니다.</string>
<string name="screen_live_room_staff_label">스탭</string>
<string name="screen_live_room_can_unit"></string>
<string name="screen_live_room_donation_message_format">"%1$s"</string>
<string name="screen_live_room_donation_sender">%1$s님이</string>
<string name="screen_live_room_roulette_sender">%1$s님의 룰렛 결과?</string>
<string name="screen_live_room_roulette_win">[%1$s] 당첨!</string>
<string name="screen_live_room_heart_label">하트</string>
<string name="screen_live_room_secret_label">비밀</string>
<string name="screen_live_room_change_to_listener">리스너로 변경</string>
<string name="screen_live_room_invite_speaker">스피커로 초대</string>
<string name="screen_live_room_chat_ban_short">채금</string>
<string name="screen_live_room_set_manager">스탭 지정</string>
<string name="screen_live_room_unset_manager">스탭 해제</string>
<string name="screen_live_room_speaker_label">스피커</string>
<string name="screen_live_room_listener_label">리스너</string>
<string name="screen_live_room_secret_mission_hint">비밀 미션을 입력하세요(최대 1000자)</string>
<string name="screen_live_room_donation_message_hint">함께 보낼 메시지 입력(최대 1000자)</string>
<string name="screen_live_room_secret_mission_input_min">10캔 이상 입력하세요</string>
<string name="screen_live_room_donation_input_min">1캔 이상 입력하세요</string>
<string name="screen_my_notice_more">자세히</string> <string name="screen_my_notice_more">자세히</string>
<string name="screen_my_login">LOGIN</string> <string name="screen_my_login">LOGIN</string>
<string name="screen_my_edit_profile">프로필 수정</string> <string name="screen_my_edit_profile">프로필 수정</string>