refactor(home): 팔로잉 문구를 다국어화한다

This commit is contained in:
Yu Sung
2026-07-01 14:13:43 +09:00
parent e3dd508528
commit 641b00e66b
5 changed files with 45 additions and 9 deletions

View File

@@ -3075,18 +3075,54 @@ If you block this user, the following features will be restricted.
pick(ko: "전체", en: "All", ja: "すべて") pick(ko: "전체", en: "All", ja: "すべて")
} }
static var tabTitle: String {
pick(ko: "팔로잉", en: "Following", ja: "フォロー中")
}
static var onAirTitle: String { static var onAirTitle: String {
pick(ko: "On Air", en: "On Air", ja: "On Air") pick(ko: "On Air", en: "On Air", ja: "On Air")
} }
static var liveTag: String {
pick(ko: "LIVE", en: "LIVE", ja: "LIVE")
}
static var recentChatTitle: String { static var recentChatTitle: String {
pick(ko: "최근 대화", en: "Recent chats", ja: "最近のトーク") pick(ko: "최근 대화", en: "Recent chats", ja: "最近のトーク")
} }
static var directTag: String {
pick(ko: "Direct", en: "Direct", ja: "Direct")
}
static var monthlyScheduleTitle: String { static var monthlyScheduleTitle: String {
pick(ko: "이달의 스케줄", en: "This month's schedule", ja: "今月のスケジュール") pick(ko: "이달의 스케줄", en: "This month's schedule", ja: "今月のスケジュール")
} }
static var today: String {
pick(ko: "오늘", en: "Today", ja: "今日")
}
static var onAirStatus: String {
pick(ko: "On Air", en: "On Air", ja: "On Air")
}
static var liveScheduleTag: String {
pick(ko: "라이브", en: "Live", ja: "ライブ")
}
static var liveReplayScheduleTag: String {
pick(ko: "다시보기", en: "Replay", ja: "アーカイブ")
}
static var audioScheduleTag: String {
pick(ko: "오디오", en: "Audio", ja: "オーディオ")
}
static var communityScheduleTag: String {
pick(ko: "커뮤니티", en: "Community", ja: "コミュニティ")
}
static var recentNewsTitle: String { static var recentNewsTitle: String {
pick(ko: "최근 소식", en: "Recent news", ja: "最近のニュース") pick(ko: "최근 소식", en: "Recent news", ja: "最近のニュース")
} }

View File

@@ -85,7 +85,7 @@ private struct MainHomeFollowingChatItemView: View {
private struct DirectTagView: View { private struct DirectTagView: View {
var body: some View { var body: some View {
Text("Direct") Text(I18n.HomeFollowing.directTag)
.appFont(size: 12, weight: .bold) .appFont(size: 12, weight: .bold)
.italic() .italic()
.foregroundColor(.white) .foregroundColor(.white)

View File

@@ -88,7 +88,7 @@ private struct LiveTagView: View {
.fill(Color.red400) .fill(Color.red400)
.frame(width: 8, height: 8) .frame(width: 8, height: 8)
Text("LIVE") Text(I18n.HomeFollowing.liveTag)
.appFont(size: 12, weight: .regular) .appFont(size: 12, weight: .regular)
.foregroundColor(.white) .foregroundColor(.white)
.lineLimit(1) .lineLimit(1)

View File

@@ -132,7 +132,7 @@ private struct DateBoxView: View {
var body: some View { var body: some View {
VStack(alignment: .center, spacing: SodaSpacing.s4) { VStack(alignment: .center, spacing: SodaSpacing.s4) {
if schedule.isToday { if schedule.isToday {
Text("오늘") Text(I18n.HomeFollowing.today)
.appFont(size: 22, weight: .bold) .appFont(size: 22, weight: .bold)
.foregroundColor(.white) .foregroundColor(.white)
.lineLimit(1) .lineLimit(1)
@@ -189,7 +189,7 @@ private extension FollowingScheduleResponse {
var statusText: String { var statusText: String {
if isOnAir { if isOnAir {
return "On Air" return I18n.HomeFollowing.onAirStatus
} }
guard let scheduledDate else { return scheduledAtUtc } guard let scheduledDate else { return scheduledAtUtc }
@@ -201,13 +201,13 @@ private extension CreatorActivityType {
var scheduleTagTitle: String { var scheduleTagTitle: String {
switch self { switch self {
case .live: case .live:
return "라이브" return I18n.HomeFollowing.liveScheduleTag
case .liveReplay: case .liveReplay:
return "다시보기" return I18n.HomeFollowing.liveReplayScheduleTag
case .audio: case .audio:
return "오디오" return I18n.HomeFollowing.audioScheduleTag
case .community: case .community:
return "커뮤니티" return I18n.HomeFollowing.communityScheduleTag
case .unknown(let rawValue): case .unknown(let rawValue):
return rawValue return rawValue
} }

View File

@@ -54,7 +54,7 @@ struct MainHomeFollowingView: View {
) )
} }
MainPlaceholderTabView(title: "팔로잉") MainPlaceholderTabView(title: I18n.HomeFollowing.tabTitle)
} }
.onAppear { .onAppear {
if viewModel.hasLoaded == false { if viewModel.hasLoaded == false {