feat(i18n): 라이브 룸 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-04-01 13:52:02 +09:00
parent 540238eb48
commit bceec46ebc
36 changed files with 571 additions and 324 deletions

View File

@@ -110,7 +110,7 @@ struct LiveDetailView: View {
.frame(width: 26.7, height: 26.7)
.padding(.leading, 6.7)
} else {
Text("무료")
Text(I18n.CreateContent.free)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
@@ -185,7 +185,7 @@ struct LiveDetailView: View {
.resizable()
.frame(width: 13.3, height: 13.3)
Text("채널보기")
Text(I18n.CreateLive.detailViewChannel)
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.white)
.onTapGesture {
@@ -278,7 +278,7 @@ struct LiveDetailView: View {
if room.manager.id == UserDefaults.int(forKey: .userId) {
VStack(spacing: 16.7) {
HStack(spacing: 13.3) {
Text("수정")
Text(I18n.CreateLive.detailEdit)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 16)
@@ -294,7 +294,7 @@ struct LiveDetailView: View {
AppState.shared.setAppStep(step: .modifyLive(room: room))
}
Text("라이브 시작")
Text(I18n.CreateLive.detailStartLive)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 16)
@@ -307,7 +307,7 @@ struct LiveDetailView: View {
}
}
Text("예약삭제")
Text(I18n.CreateLive.detailReservationDelete)
.appFont(size: 14, weight: .medium)
.foregroundColor(Color(hex: "ff5c49"))
.padding(5.3)
@@ -323,7 +323,7 @@ struct LiveDetailView: View {
}
.frame(width: screenSize().width - 26.7)
} else if room.isPaid {
Text("예약완료")
Text(I18n.CreateLive.detailReservationDone)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "777777"))
.padding(.vertical, 16)
@@ -336,7 +336,7 @@ struct LiveDetailView: View {
onClickReservation()
AppState.shared.back()
} label: {
Text("예약하기")
Text(I18n.CreateLive.detailReservationAction)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 16)
@@ -351,7 +351,7 @@ struct LiveDetailView: View {
onClickParticipant()
AppState.shared.back()
} label: {
Text("지금 참여하기")
Text(I18n.CreateLive.detailJoinNow)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 16)
@@ -369,7 +369,7 @@ struct LiveDetailView: View {
private func ParticipantView(room: GetRoomDetailResponse) -> some View {
if isExpandParticipantArea {
HStack(spacing: 0) {
Text(room.channelName.isNullOrBlank() ? "예약자" : "참가자")
Text(room.channelName.isNullOrBlank() ? I18n.CreateLive.detailReservationParticipant : I18n.CreateLive.detailParticipant)
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.graybb)
@@ -450,7 +450,7 @@ struct LiveDetailView: View {
.resizable()
.frame(width: 20, height: 20)
Text(isExpandParticipantArea ? "닫기" : "펼쳐보기")
Text(isExpandParticipantArea ? I18n.CreateLive.detailCollapse : I18n.CreateLive.detailExpand)
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.graybb)
}

View File

@@ -49,14 +49,14 @@ final class LiveDetailViewModel: ObservableObject {
if let message = decoded.message {
self.errorMessage = message
} else {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
}
self.isShowPopup = true
}
} catch {
print(error)
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowPopup = true
}
@@ -96,13 +96,13 @@ final class LiveDetailViewModel: ObservableObject {
if let message = decoded.message {
self.errorMessage = message
} else {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
}
self.isShowPopup = true
}
} catch {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowPopup = true
}
}