diff --git a/SodaLive/Sources/I18n/I18n.swift b/SodaLive/Sources/I18n/I18n.swift index 8abed6b..c20400a 100644 --- a/SodaLive/Sources/I18n/I18n.swift +++ b/SodaLive/Sources/I18n/I18n.swift @@ -111,8 +111,30 @@ enum I18n { static var points: String { pick(ko: "포인트", en: "Points", ja: "ポイント") } } - // 설정 > 회원탈퇴(SignOut) + // 설정 화면 및 계정 관련 공통 문구는 아래 Settings 네임스페이스에 포함됨 + + // 설정 > 공통 및 회원탈퇴(SignOut) enum Settings { + // 알림 다이얼로그 타이틀 + static var alertTitle: String { pick(ko: "알림", en: "Notice", ja: "お知らせ") } + + // 로그아웃 확인 질문 + static var logoutQuestion: String { + pick( + ko: "로그아웃 하시겠어요?", + en: "Do you want to log out?", + ja: "ログアウトしますか?" + ) + } + + // 모든 기기 로그아웃 확인 질문 + static var logoutAllQuestion: String { + pick( + ko: "모든 기기에서 로그아웃 하시겠어요?", + en: "Do you want to log out from all devices?", + ja: "すべてのデバイスからログアウトしますか?" + ) + } enum SignOut { // 탈퇴 사유 목록 (UI에서 그대로 배열로 사용 가능) static var reasons: [String] { diff --git a/SodaLive/Sources/Settings/SettingsView.swift b/SodaLive/Sources/Settings/SettingsView.swift index e7d57ec..3935621 100644 --- a/SodaLive/Sources/Settings/SettingsView.swift +++ b/SodaLive/Sources/Settings/SettingsView.swift @@ -215,9 +215,9 @@ struct SettingsView: View { if isShowLogoutDialog { SodaDialog( - title: "알림", - desc: "로그아웃 하시겠어요?", - confirmButtonTitle: "확인", + title: I18n.Settings.alertTitle, + desc: I18n.Settings.logoutQuestion, + confirmButtonTitle: I18n.Common.confirm, confirmButtonAction: { ContentPlayManager.shared.stopAudio() ContentPlayerPlayManager.shared.resetPlayer() @@ -231,7 +231,7 @@ struct SettingsView: View { AppState.shared.setAppStep(step: .splash) } }, - cancelButtonTitle: "취소", + cancelButtonTitle: I18n.Common.cancel, cancelButtonAction: { self.isShowLogoutDialog = false } @@ -240,9 +240,9 @@ struct SettingsView: View { if isShowLogoutAllDeviceDialog { SodaDialog( - title: "알림", - desc: "모든 기기에서 로그아웃 하시겠어요?", - confirmButtonTitle: "확인", + title: I18n.Settings.alertTitle, + desc: I18n.Settings.logoutAllQuestion, + confirmButtonTitle: I18n.Common.confirm, confirmButtonAction: { ContentPlayManager.shared.stopAudio() ContentPlayerPlayManager.shared.resetPlayer() @@ -253,7 +253,7 @@ struct SettingsView: View { AppState.shared.setAppStep(step: .splash) } }, - cancelButtonTitle: "취소", + cancelButtonTitle: I18n.Common.cancel, cancelButtonAction: { self.isShowLogoutAllDeviceDialog = false } diff --git a/SodaLive/Sources/Settings/SettingsViewModel.swift b/SodaLive/Sources/Settings/SettingsViewModel.swift index 287de29..306a53b 100644 --- a/SodaLive/Sources/Settings/SettingsViewModel.swift +++ b/SodaLive/Sources/Settings/SettingsViewModel.swift @@ -42,13 +42,13 @@ final class SettingsViewModel: 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 } @@ -82,13 +82,13 @@ final class SettingsViewModel: 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 }