String Catalog가 적용되지 않는 부분을 I18n 파일에 언어별로 하드코딩 하여 보완

This commit is contained in:
Yu Sung
2025-12-17 12:03:32 +09:00
parent da2e8d0209
commit ad9f26c8a0
5 changed files with 198 additions and 124 deletions

View File

@@ -14,7 +14,7 @@ struct HomeLatestContentView: View {
let contentList: [AudioContentMainItem]
let selectTheme: (String) -> Void
@State private var selectedTheme = "전체"
@State private var selectedTheme = I18n.Category.all
let rows = [
GridItem(.flexible(), alignment: .leading),

View File

@@ -40,10 +40,10 @@ final class HomeTabViewModel: ObservableObject {
@Published var recommendContentList: [AudioContentMainItem] = []
private let sortType = [
"매출": ContentRankingSortType.REVENUE,
"판매량": ContentRankingSortType.SALES_COUNT,
"댓글": ContentRankingSortType.COMMENT_COUNT,
"좋아요": ContentRankingSortType.LIKE_COUNT
I18n.RankingSort.revenue: ContentRankingSortType.REVENUE,
I18n.RankingSort.salesVolume: ContentRankingSortType.SALES_COUNT,
I18n.RankingSort.comments: ContentRankingSortType.COMMENT_COUNT,
I18n.RankingSort.likes: ContentRankingSortType.LIKE_COUNT
]
func fetchData() {
@@ -67,7 +67,7 @@ final class HomeTabViewModel: ObservableObject {
if let data = decoded.data, decoded.success {
self.liveList = data.liveList
self.creatorRanking = data.creatorRanking
self.latestContentThemeList = ["전체"] + data.latestContentThemeList
self.latestContentThemeList = [I18n.Category.all] + data.latestContentThemeList
self.latestContentList = data.latestContentList
self.eventBannerList = data.bannerList
self.originalAudioDramaList = data.originalAudioDramaList
@@ -82,13 +82,13 @@ final class HomeTabViewModel: 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
}
@@ -100,7 +100,7 @@ final class HomeTabViewModel: ObservableObject {
func getLatestContentByTheme(theme: String) {
isLoading = true
repository.getLatestContentByTheme(theme: theme == "전체" ? "" : theme)
repository.getLatestContentByTheme(theme: theme == I18n.Category.all ? "" : theme)
.sink { result in
switch result {
case .finished:
@@ -121,13 +121,13 @@ final class HomeTabViewModel: 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
}
@@ -160,13 +160,13 @@ final class HomeTabViewModel: 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
}
@@ -198,13 +198,13 @@ final class HomeTabViewModel: 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
}
}
@@ -236,13 +236,13 @@ final class HomeTabViewModel: 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
}
}
@@ -274,13 +274,13 @@ final class HomeTabViewModel: 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
}
}

View File

@@ -20,8 +20,13 @@ struct HomeWeeklyChartView: View {
let contentList: [GetAudioContentRankingItem]
let onTapSort: (String) -> Void
let sortList = ["매출", "판매량", "댓글", "좋아요"]
@State private var selectedSort = "매출"
let sortList = [
I18n.RankingSort.revenue,
I18n.RankingSort.salesVolume,
I18n.RankingSort.comments,
I18n.RankingSort.likes
]
@State private var selectedSort = I18n.RankingSort.revenue
var body: some View {
VStack(spacing: 16) {