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

This commit is contained in:
Yu Sung
2026-04-01 11:58:41 +09:00
parent 201f4c8139
commit 540238eb48
20 changed files with 333 additions and 97 deletions

View File

@@ -42,7 +42,7 @@ final class LiveViewModel: ObservableObject {
@Published var liveStartDate: String? = nil
@Published var nowDate: String? = nil
let paymentDialogCancelTitle = "취소"
let paymentDialogCancelTitle = I18n.Common.cancel
var page = 1
var isLast = false
@@ -104,13 +104,13 @@ final class LiveViewModel: ObservableObject {
if let message = decoded.message {
self.errorMessage = message
} else {
self.errorMessage = "라이브에 입장하지 못했습니다.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.MemberChannel.enterLiveFailed
}
self.isShowPopup = true
}
} catch {
self.errorMessage = "라이브에 입장하지 못했습니다.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.MemberChannel.enterLiveFailed
self.isShowPopup = true
}
}
@@ -151,13 +151,13 @@ final class LiveViewModel: ObservableObject {
if let message = decoded.message {
self.errorMessage = message
} else {
self.errorMessage = "라이브에 입장하지 못했습니다.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.MemberChannel.enterLiveFailed
}
self.isShowPopup = true
}
} catch {
self.errorMessage = "라이브에 입장하지 못했습니다.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.MemberChannel.enterLiveFailed
self.isShowPopup = true
}
}
@@ -189,13 +189,13 @@ final class LiveViewModel: 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
}
}
@@ -245,13 +245,13 @@ final class LiveViewModel: 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
}
}
@@ -297,13 +297,13 @@ final class LiveViewModel: 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
}
}
@@ -314,7 +314,7 @@ final class LiveViewModel: ObservableObject {
func reservationLiveRoom(roomId: Int) {
getRoomDetail(roomId: roomId) { [unowned self] in
if ($0.manager.id == UserDefaults.int(forKey: .userId)) {
self.errorMessage = "내가 만든 라이브는 예약할 수 없습니다."
self.errorMessage = I18n.MemberChannel.cannotReserveOwnLive
self.isShowPopup = true
} else {
if $0.isPrivateRoom {
@@ -326,9 +326,9 @@ final class LiveViewModel: ObservableObject {
if ($0.price == 0 || $0.isPaid) {
self.reservation(roomId: roomId)
} else {
self.paymentDialogTitle = "\($0.price)캔으로 예약"
self.paymentDialogDesc = "'\($0.title)' 라이브에 참여하기 위해 결제합니다."
self.paymentDialogConfirmTitle = "결제 후 예약하기"
self.paymentDialogTitle = I18n.MemberChannel.reserveWithCansTitle($0.price)
self.paymentDialogDesc = I18n.MemberChannel.reservePaymentDesc($0.title)
self.paymentDialogConfirmTitle = I18n.MemberChannel.reservePaymentConfirmTitle
self.paymentDialogConfirmAction = { [unowned self] in
hidePopup()
reservation(roomId: roomId)
@@ -375,13 +375,13 @@ final class LiveViewModel: ObservableObject {
if hours >= 1 {
self.liveStartDate = beginDate.convertDateFormat(dateFormat: "yyyy-MM-dd, HH:mm")
self.nowDate = now.convertDateFormat(dateFormat: "yyyy-MM-dd, HH:mm")
self.paymentDialogDesc2 = "라이브를 시작한 지 \(hours)시간 \(minutes)분이 지났습니다. 라이브에 입장 후 30분 이내에 라이브가 종료될 수도 있습니다."
self.paymentDialogDesc2 = I18n.MemberChannel.elapsedLiveWarning(hours: hours, minutes: minutes)
}
}
self.paymentDialogTitle = "유료 라이브 입장"
self.paymentDialogDesc = "\($0.price)캔을 차감하고\n라이브에 입장 하시겠습니까?"
self.paymentDialogConfirmTitle = "결제 후 참여하기"
self.paymentDialogTitle = I18n.MemberChannel.paidLiveEnterTitle
self.paymentDialogDesc = I18n.MemberChannel.paidLiveEnterDesc($0.price)
self.paymentDialogConfirmTitle = I18n.MemberChannel.paidLiveConfirmTitle
self.paymentDialogConfirmAction = { [unowned self] in
hidePopup()
self.enterRoom(roomId: roomId)
@@ -425,18 +425,18 @@ final class LiveViewModel: ObservableObject {
} else {
if let message = decoded.message {
if message.contains("종료") {
self.errorMessage = "이미 종료된 라이브 입니다."
self.errorMessage = I18n.MemberChannel.alreadyEndedLive
} else {
self.errorMessage = message
}
} else {
self.errorMessage = "라이브 정보를 가져오지 못했습니다.\n다시 시도해 주세요."
self.errorMessage = I18n.MemberChannel.fetchLiveInfoFailed
}
self.isShowPopup = true
}
} catch {
self.errorMessage = "라이브 정보를 가져오지 못했습니다.\n다시 시도해 주세요."
self.errorMessage = I18n.MemberChannel.fetchLiveInfoFailed
self.isShowPopup = true
}
@@ -471,13 +471,13 @@ final class LiveViewModel: 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
}
}