feat(i18n): 설정 화면 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-03-31 19:46:21 +09:00
parent 3f61a08a04
commit 4c170e0f97
17 changed files with 354 additions and 94 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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
}