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

@@ -86,11 +86,11 @@ final class RouletteSettingsViewModel: ObservableObject {
rouletteList.append(contentsOf: data)
selectRoulette(selectedRoulette: .ROULETTE_1)
} else {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowErrorPopup = true
}
} catch {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowErrorPopup = true
}
}
@@ -104,7 +104,7 @@ final class RouletteSettingsViewModel: ObservableObject {
for option in options {
if option.title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
isLoading = false
errorMessage = "옵션은 빈칸일 수 없습니다."
errorMessage = I18n.CreateLive.rouletteOptionEmptyError
isShowErrorPopup = true
return
}
@@ -137,7 +137,7 @@ final class RouletteSettingsViewModel: ObservableObject {
for option in options {
if option.title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
isLoading = false
errorMessage = "옵션은 빈칸일 수 없습니다."
errorMessage = I18n.CreateLive.rouletteOptionEmptyError
isShowErrorPopup = true
return false
}
@@ -149,7 +149,7 @@ final class RouletteSettingsViewModel: ObservableObject {
if totalPercentage > Float(100.1) || totalPercentage <= Float(99.99) {
isLoading = false
errorMessage = "확률이 100%가 아닙니다"
errorMessage = I18n.CreateLive.rouletteProbabilityInvalidError
isShowErrorPopup = true
return false
}
@@ -170,23 +170,23 @@ final class RouletteSettingsViewModel: ObservableObject {
switch (self.selectedRoulette) {
case .ROULETTE_2:
selectedRouletteTitle = "룰렛 2"
selectedRouletteTitle = I18n.Common.roulette2
case .ROULETTE_3:
selectedRouletteTitle = "룰렛 3"
selectedRouletteTitle = I18n.Common.roulette3
default:
selectedRouletteTitle = "룰렛 1"
selectedRouletteTitle = I18n.Common.roulette1
}
if availableActive {
if isActive {
successMessage = "\(selectedRouletteTitle)로 설정하였습니다."
successMessage = I18n.CreateLive.rouletteSetAsSuccess(selectedRouletteTitle)
} else {
successMessage = "\(selectedRouletteTitle)을 설정했습니다."
successMessage = I18n.CreateLive.rouletteSetSuccess(selectedRouletteTitle)
}
} else {
successMessage = "\(selectedRouletteTitle)을 생성했습니다."
successMessage = I18n.CreateLive.rouletteCreatedSuccess(selectedRouletteTitle)
}
let request = CreateRouletteRequest(can: can, isActive: isActive, items: items)
@@ -209,11 +209,11 @@ final class RouletteSettingsViewModel: ObservableObject {
if decoded.success {
onSuccess(isActive, successMessage)
} else {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowErrorPopup = true
}
} catch {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowErrorPopup = true
}
}
@@ -230,7 +230,7 @@ final class RouletteSettingsViewModel: ObservableObject {
let selectedRoulette = rouletteList[selectedRoulette!.rawValue]
if selectedRoulette.isActive == isActive && selectedRoulette.can == can && selectedRoulette.items == items {
self.errorMessage = "변동사항이 없습니다."
self.errorMessage = I18n.CreateLive.rouletteNoChangesMessage
self.isShowErrorPopup = true
self.isLoading = false
return
@@ -241,23 +241,23 @@ final class RouletteSettingsViewModel: ObservableObject {
switch (self.selectedRoulette) {
case .ROULETTE_2:
selectedRouletteTitle = "룰렛 2"
selectedRouletteTitle = I18n.Common.roulette2
case .ROULETTE_3:
selectedRouletteTitle = "룰렛 3"
selectedRouletteTitle = I18n.Common.roulette3
default:
selectedRouletteTitle = "룰렛 1"
selectedRouletteTitle = I18n.Common.roulette1
}
if availableActive {
if isActive {
successMessage = "\(selectedRouletteTitle)을 활성화 했습니다."
successMessage = I18n.CreateLive.rouletteActivatedSuccess(selectedRouletteTitle)
} else {
successMessage = "\(selectedRouletteTitle)을 비활성화 했습니다."
successMessage = I18n.CreateLive.rouletteDeactivatedSuccess(selectedRouletteTitle)
}
} else {
successMessage = "\(selectedRouletteTitle)을 변경했습니다."
successMessage = I18n.CreateLive.rouletteChangedSuccess(selectedRouletteTitle)
}
let request = UpdateRouletteRequest(id: rouletteId, can: can, isActive: isActive, items: items)
@@ -280,11 +280,11 @@ final class RouletteSettingsViewModel: ObservableObject {
if decoded.success {
onSuccess(isActive, successMessage)
} else {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowErrorPopup = true
}
} catch {
self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
self.errorMessage = I18n.Common.commonError
self.isShowErrorPopup = true
}
}
@@ -293,13 +293,13 @@ final class RouletteSettingsViewModel: ObservableObject {
func selectRoulette(selectedRoulette: SelectedRoulette) {
if rouletteList.isEmpty && (selectedRoulette == .ROULETTE_2 || selectedRoulette == .ROULETTE_3) {
errorMessage = "룰렛 1을 먼저 설정하세요"
errorMessage = I18n.CreateLive.rouletteNeedFirstMessage
isShowErrorPopup = true
return
}
if rouletteList.count == 1 && selectedRoulette == .ROULETTE_3 {
errorMessage = "룰렛 1과 룰렛 2를 먼저 설정하세요"
errorMessage = I18n.CreateLive.rouletteNeedFirstAndSecondMessage
isShowErrorPopup = true
return
}