feat(i18n): 설정 화면 하드코딩 문구를 I18n 키로 통일한다
This commit is contained in:
@@ -18,7 +18,7 @@ struct ContentSettingsView: View {
|
||||
Color.black.ignoresSafeArea()
|
||||
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "콘텐츠 보기 설정") {
|
||||
DetailNavigationBar(title: I18n.Settings.contentViewSettings) {
|
||||
if AppState.shared.isRestartApp {
|
||||
AppState.shared.setAppStep(step: .splash)
|
||||
} else {
|
||||
@@ -29,7 +29,7 @@ struct ContentSettingsView: View {
|
||||
ScrollView(.vertical) {
|
||||
VStack(spacing: 0) {
|
||||
HStack(spacing: 0) {
|
||||
Text("민감한 콘텐츠 보기")
|
||||
Text(I18n.Settings.Content.sensitiveContentTitle)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -59,7 +59,7 @@ struct ContentSettingsView: View {
|
||||
.resizable()
|
||||
.frame(width: 20, height: 20)
|
||||
|
||||
Text("전체")
|
||||
Text(I18n.Settings.Content.all)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
}
|
||||
@@ -79,7 +79,7 @@ struct ContentSettingsView: View {
|
||||
.resizable()
|
||||
.frame(width: 20, height: 20)
|
||||
|
||||
Text("남성향")
|
||||
Text(I18n.Settings.Content.maleOriented)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
}
|
||||
@@ -99,7 +99,7 @@ struct ContentSettingsView: View {
|
||||
.resizable()
|
||||
.frame(width: 20, height: 20)
|
||||
|
||||
Text("여성향")
|
||||
Text(I18n.Settings.Content.femaleOriented)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ struct EventDetailView: View {
|
||||
BaseView {
|
||||
GeometryReader { proxy in
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "이벤트 상세")
|
||||
DetailNavigationBar(title: I18n.Settings.Event.detailTitle)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
KFImage(URL(string: event.detailImageUrl!))
|
||||
@@ -28,7 +28,7 @@ struct EventDetailView: View {
|
||||
Spacer()
|
||||
|
||||
if let link = event.link, link.count > 0, let url = URL(string: link), UIApplication.shared.canOpenURL(url) {
|
||||
Text("이벤트 참여하기")
|
||||
Text(I18n.Settings.Event.participateButton)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(.white)
|
||||
.padding(.vertical, 16)
|
||||
|
||||
@@ -15,7 +15,7 @@ struct EventListView: View {
|
||||
var body: some View {
|
||||
BaseView(isLoading: $viewModel.isLoading) {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "이벤트")
|
||||
DetailNavigationBar(title: I18n.Settings.Event.title)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 15) {
|
||||
|
||||
@@ -45,13 +45,13 @@ final class EventListViewModel: 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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,10 +15,10 @@ enum LanguageOption: String, CaseIterable, Equatable {
|
||||
|
||||
var displayName: String {
|
||||
switch self {
|
||||
case .system: return String(localized: "시스템 기본")
|
||||
case .ko: return "한국어"
|
||||
case .en: return "English"
|
||||
case .ja: return "日本語"
|
||||
case .system: return I18n.Settings.Language.systemDefault
|
||||
case .ko: return I18n.Settings.Language.korean
|
||||
case .en: return I18n.Settings.Language.english
|
||||
case .ja: return I18n.Settings.Language.japanese
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ struct LanguageSettingsView: View {
|
||||
Color.black.ignoresSafeArea()
|
||||
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: String(localized: "언어 설정"))
|
||||
DetailNavigationBar(title: I18n.Settings.languageSettings)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 0) {
|
||||
@@ -58,7 +58,7 @@ struct LanguageSettingsView: View {
|
||||
Button(action: {
|
||||
Task { await viewModel.applyAndRestart() }
|
||||
}) {
|
||||
Text("적용")
|
||||
Text(I18n.Settings.Language.apply)
|
||||
.appFont(size: 16, weight: .bold)
|
||||
.frame(width: cardWidth, height: 50)
|
||||
.background(Color.button)
|
||||
|
||||
@@ -15,7 +15,7 @@ struct NoticeDetailView: View {
|
||||
var body: some View {
|
||||
BaseView {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: String(localized: "공지사항 상세"))
|
||||
DetailNavigationBar(title: I18n.Settings.Notice.detailTitle)
|
||||
|
||||
VStack(alignment: .leading, spacing: 6.7) {
|
||||
Text(notice.title)
|
||||
|
||||
@@ -14,7 +14,7 @@ struct NoticeListView: View {
|
||||
var body: some View {
|
||||
BaseView(isLoading: $viewModel.isLoading) {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "공지사항")
|
||||
DetailNavigationBar(title: I18n.Settings.Notice.title)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 0) {
|
||||
|
||||
@@ -44,13 +44,13 @@ final class NoticeListViewModel: 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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ struct NotificationSettingsDialog: View {
|
||||
|
||||
VStack(spacing: 0) {
|
||||
HStack(spacing: 0) {
|
||||
Text("라이브 알림")
|
||||
Text(I18n.Settings.Notification.live)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -40,7 +40,7 @@ struct NotificationSettingsDialog: View {
|
||||
.padding(.vertical, 13)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("콘텐츠 업로드 알림")
|
||||
Text(I18n.Settings.Notification.contentUpload)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -60,7 +60,7 @@ struct NotificationSettingsDialog: View {
|
||||
.padding(.vertical, 13)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("메시지 알림")
|
||||
Text(I18n.Settings.Notification.message)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -74,7 +74,7 @@ struct NotificationSettingsDialog: View {
|
||||
}
|
||||
}
|
||||
|
||||
Text("확인")
|
||||
Text(I18n.Settings.Notification.confirm)
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color(hex: "ffffff"))
|
||||
.padding(.vertical, 16)
|
||||
|
||||
@@ -14,12 +14,12 @@ struct NotificationSettingsView: View {
|
||||
var body: some View {
|
||||
BaseView(isLoading: $viewModel.isLoading) {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "알림 설정")
|
||||
DetailNavigationBar(title: I18n.Settings.Notification.title)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 0) {
|
||||
HStack(spacing: 0) {
|
||||
Text("라이브 알림")
|
||||
Text(I18n.Settings.Notification.live)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -39,7 +39,7 @@ struct NotificationSettingsView: View {
|
||||
.foregroundColor(Color(hex: "909090").opacity(0.3))
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("콘텐츠 업로드 알림")
|
||||
Text(I18n.Settings.Notification.contentUpload)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -59,7 +59,7 @@ struct NotificationSettingsView: View {
|
||||
.foregroundColor(Color(hex: "909090").opacity(0.3))
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("메시지 알림")
|
||||
Text(I18n.Settings.Notification.message)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
|
||||
@@ -108,11 +108,11 @@ struct NotificationReceiveSettingsView: View {
|
||||
var body: some View {
|
||||
BaseView(isLoading: $viewModel.isLoading) {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "알림 수신 설정")
|
||||
DetailNavigationBar(title: I18n.Settings.Notification.receiveSettingsTitle)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(alignment: .leading, spacing: 0) {
|
||||
Text("서비스 알림")
|
||||
Text(I18n.Settings.Notification.serviceNotifications)
|
||||
.appFont(size: 16.7, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
.padding(.top, 26.7)
|
||||
@@ -120,7 +120,7 @@ struct NotificationReceiveSettingsView: View {
|
||||
|
||||
VStack(spacing: 0) {
|
||||
NotificationReceiveServiceRowView(
|
||||
title: "라이브 알림",
|
||||
title: I18n.Settings.Notification.live,
|
||||
isOn: viewModel.followingChannelLive,
|
||||
onTapToggle: {
|
||||
viewModel.followingChannelLive.toggle()
|
||||
@@ -132,7 +132,7 @@ struct NotificationReceiveSettingsView: View {
|
||||
.foregroundColor(Color(hex: "909090").opacity(0.3))
|
||||
|
||||
NotificationReceiveServiceRowView(
|
||||
title: "콘텐츠 업로드 알림",
|
||||
title: I18n.Settings.Notification.contentUpload,
|
||||
isOn: viewModel.followingChannelUploadContent,
|
||||
onTapToggle: {
|
||||
viewModel.followingChannelUploadContent.toggle()
|
||||
@@ -144,7 +144,7 @@ struct NotificationReceiveSettingsView: View {
|
||||
.foregroundColor(Color(hex: "909090").opacity(0.3))
|
||||
|
||||
NotificationReceiveServiceRowView(
|
||||
title: "메시지 알림",
|
||||
title: I18n.Settings.Notification.message,
|
||||
isOn: viewModel.message,
|
||||
onTapToggle: {
|
||||
viewModel.message.toggle()
|
||||
@@ -158,14 +158,14 @@ struct NotificationReceiveSettingsView: View {
|
||||
.padding(.top, 13.3)
|
||||
.padding(.horizontal, 13.3)
|
||||
|
||||
Text("팔로잉 채널")
|
||||
Text(I18n.Settings.Notification.followingChannels)
|
||||
.appFont(size: 16.7, weight: .bold)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
.padding(.top, 26.7)
|
||||
.padding(.horizontal, 13.3)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("총")
|
||||
Text(I18n.Settings.Notification.totalPrefix)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -173,7 +173,7 @@ struct NotificationReceiveSettingsView: View {
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.mainRed3)
|
||||
|
||||
Text("명")
|
||||
Text(I18n.Settings.Notification.countUnit)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -212,7 +212,7 @@ struct NotificationReceiveSettingsView: View {
|
||||
}
|
||||
.padding(.top, 13.3)
|
||||
} else {
|
||||
Text("팔로우 중인 채널이 없습니다.")
|
||||
Text(I18n.Settings.Notification.noFollowingChannels)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
.padding(.top, 13.3)
|
||||
|
||||
@@ -59,13 +59,13 @@ final class NotificationSettingsViewModel: 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
|
||||
}
|
||||
|
||||
|
||||
@@ -26,13 +26,13 @@ struct SettingsView: View {
|
||||
BaseView(isLoading: $viewModel.isLoading) {
|
||||
GeometryReader { geo in
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: String(localized: "설정"))
|
||||
DetailNavigationBar(title: I18n.Settings.title)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 0) {
|
||||
VStack(spacing: 0) {
|
||||
HStack(spacing: 0) {
|
||||
Text("알림 설정")
|
||||
Text(I18n.Settings.notificationSettings)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -54,7 +54,7 @@ struct SettingsView: View {
|
||||
.foregroundColor(Color.gray90)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("언어 설정")
|
||||
Text(I18n.Settings.languageSettings)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -77,7 +77,7 @@ struct SettingsView: View {
|
||||
.foregroundColor(Color.gray90)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("콘텐츠 보기 설정")
|
||||
Text(I18n.Settings.contentViewSettings)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -103,7 +103,7 @@ struct SettingsView: View {
|
||||
|
||||
VStack(spacing: 0) {
|
||||
HStack(spacing: 0) {
|
||||
Text("이용약관")
|
||||
Text(I18n.Settings.termsOfService)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -125,7 +125,7 @@ struct SettingsView: View {
|
||||
.foregroundColor(Color.gray90)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("개인정보처리방침")
|
||||
Text(I18n.Settings.privacyPolicy)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -149,7 +149,7 @@ struct SettingsView: View {
|
||||
.padding(.top, 13.3)
|
||||
|
||||
HStack(spacing: 0) {
|
||||
Text("앱 버전 정보")
|
||||
Text(I18n.Settings.appVersionInfo)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -167,27 +167,13 @@ struct SettingsView: View {
|
||||
.cornerRadius(6.7)
|
||||
.padding(.top, 13.3)
|
||||
|
||||
Text("""
|
||||
- 회사명 : 주식회사 소다라이브
|
||||
|
||||
- 대표자 : 이재형
|
||||
|
||||
- 주소 : 경기도 성남시 분당구 황새울로335번길 10, 5층 563A호
|
||||
|
||||
- 사업자등록번호 : 870-81-03220
|
||||
|
||||
- 통신판매업신고 : 제2024-성남분당B-1012호
|
||||
|
||||
- 고객센터 : 02.2055.1477 (이용시간 10:00~19:00)
|
||||
|
||||
- 대표 이메일 : sodalive.official@gmail.com
|
||||
""")
|
||||
.appFont(size: 11, weight: .medium)
|
||||
.foregroundColor(Color.gray77)
|
||||
.frame(width: cardWidth, alignment: .leading)
|
||||
.padding(.top, 13.3)
|
||||
Text(I18n.Settings.companyInfo)
|
||||
.appFont(size: 11, weight: .medium)
|
||||
.foregroundColor(Color.gray77)
|
||||
.frame(width: cardWidth, alignment: .leading)
|
||||
.padding(.top, 13.3)
|
||||
|
||||
Text("로그아웃")
|
||||
Text(I18n.Settings.logout)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
.frame(width: cardWidth, height: 50)
|
||||
@@ -198,7 +184,7 @@ struct SettingsView: View {
|
||||
}
|
||||
.padding(.top, 46.7)
|
||||
|
||||
Text("모든 기기에서 로그아웃")
|
||||
Text(I18n.Settings.logoutAllDevices)
|
||||
.appFont(size: 14.7, weight: .medium)
|
||||
.foregroundColor(Color.gray77)
|
||||
.padding(.top, 13.3)
|
||||
@@ -206,7 +192,7 @@ struct SettingsView: View {
|
||||
isShowLogoutAllDeviceDialog = true
|
||||
}
|
||||
|
||||
Text("회원탈퇴")
|
||||
Text(I18n.Settings.signOut)
|
||||
.appFont(size: 14.7, weight: .medium)
|
||||
.foregroundColor(Color.gray77)
|
||||
.underline()
|
||||
|
||||
@@ -14,17 +14,17 @@ struct SignOutView: View {
|
||||
var body: some View {
|
||||
BaseView(isLoading: $viewModel.isLoading) {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "회원탈퇴")
|
||||
DetailNavigationBar(title: I18n.Settings.SignOut.title)
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 0) {
|
||||
VStack(spacing: 13.3) {
|
||||
Text("정말로 탈퇴하실 거에요?\n한 번 더 생각해보지 않으실래요?")
|
||||
Text(I18n.Settings.SignOut.headline)
|
||||
.appFont(size: 20, weight: .bold)
|
||||
.foregroundColor(Color(hex: "3bb9f1"))
|
||||
.frame(width: screenSize().width - 26.7, alignment: .leading)
|
||||
|
||||
Text("계정을 삭제하려는 이유를 선택해주세요.\n서비스 개선에 중요한 자료로 활용하겠습니다.")
|
||||
Text(I18n.Settings.SignOut.reasonGuide)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color(hex: "eeeeee"))
|
||||
.frame(width: screenSize().width - 26.7, alignment: .leading)
|
||||
@@ -48,7 +48,7 @@ struct SignOutView: View {
|
||||
|
||||
if index == viewModel.reasons.count - 1 {
|
||||
VStack(spacing: 6.7) {
|
||||
TextField("입력해주세요", text: $viewModel.reason)
|
||||
TextField(I18n.Settings.SignOut.reasonInputPlaceholder, text: $viewModel.reason)
|
||||
.autocapitalization(.none)
|
||||
.disableAutocorrection(true)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
@@ -74,7 +74,7 @@ struct SignOutView: View {
|
||||
.foregroundColor(Color(hex: "232323"))
|
||||
.padding(.top, 20)
|
||||
|
||||
Text("계정을 삭제하면 회원님의 모든 콘텐츠와 활동 길고, 캔충전 및 적립, 사용내역 등의 기록이 삭제됩니다. 삭제된 정보는 복구할 수 없으니 신중히 결정해주세요.\n캔 충전하기를 통해 적립한 캔은 계정 삭제시 환불이 불가합니다. 또한 환불 신청 후 환불처리가 되기 전에 계정을 삭제하는 경우 포인트 사용내역을 확인할 수 없어 환불이 불가합니다.")
|
||||
Text(I18n.Settings.SignOut.accountDeletionNotice)
|
||||
.appFont(size: 12, weight: .medium)
|
||||
.foregroundColor(Color(hex: "ff5c49"))
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
@@ -91,14 +91,14 @@ struct SignOutView: View {
|
||||
.padding(.top, 20)
|
||||
.padding(.horizontal, 26.7)
|
||||
|
||||
Text("※ 소셜 로그인 이용자는 비밀번호를 입력하지 말고 '탈퇴하기'를 클릭하면 자동 탈퇴됩니다.")
|
||||
Text(I18n.Settings.SignOut.socialLoginGuide)
|
||||
.appFont(size: 12, weight: .medium)
|
||||
.foregroundColor(.grayee)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.padding(.horizontal, 26.7)
|
||||
.padding(.top, 8)
|
||||
|
||||
Text("탈퇴하기")
|
||||
Text(I18n.Settings.SignOut.submit)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(.white)
|
||||
.padding(.vertical, 16)
|
||||
|
||||
@@ -45,13 +45,13 @@ final class TermsViewModel: 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
|
||||
}
|
||||
}
|
||||
@@ -84,13 +84,13 @@ final class TermsViewModel: 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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user