로컬라이징 문자열 정비

탭, 상세, 설정 화면 텍스트를 I18n 키로 교체

신규 캐릭터 전체보기 등 문자열 번역을 추가
This commit is contained in:
Yu Sung
2025-12-17 15:55:11 +09:00
parent fa163ec83d
commit a0bb593431
8 changed files with 117 additions and 63 deletions

View File

@@ -54,7 +54,7 @@ struct CharacterView: View {
title: "신규 캐릭터",
items: viewModel.newCharacters,
isShowRank: false,
trailingTitle: "전체보기",
trailingTitle: I18n.Common.viewAll,
onTapTrailing: {
onSelectNewCharacterAll()
},

View File

@@ -25,8 +25,8 @@ struct CharacterDetailView: View {
var title: String {
switch self {
case .detail: return "상세"
case .gallery: return "갤러리"
case .detail: return I18n.Tab.detail
case .gallery: return I18n.Tab.gallery
}
}
}
@@ -34,7 +34,7 @@ struct CharacterDetailView: View {
var body: some View {
BaseView(isLoading: $viewModel.isLoading) {
VStack(spacing: 0) {
DetailNavigationBar(title: "캐릭터 정보") {
DetailNavigationBar(title: String(localized: "캐릭터 정보")) {
if presentationMode.wrappedValue.isPresented {
presentationMode.wrappedValue.dismiss()
} else {

View File

@@ -18,7 +18,7 @@ struct NewCharacterListView: View {
BaseView(isLoading: $viewModel.isLoading) {
VStack(spacing: 8) {
// Toolbar
DetailNavigationBar(title: "신규 캐릭터 전체보기")
DetailNavigationBar(title: String(localized: "신규 캐릭터 전체보기"))
VStack(alignment: .leading, spacing: 12) {
// n

View File

@@ -21,9 +21,9 @@ struct ChatTabView: View {
var title: String {
switch self {
case .character: return "캐릭터"
case .original: return "작품별"
case .talk: return ""
case .character: return I18n.Tab.character
case .original: return I18n.Tab.work
case .talk: return I18n.Tab.talk
}
}
}

View File

@@ -53,7 +53,7 @@ struct OriginalWorkDetailView: View {
HStack(spacing: 0) {
SeriesDetailTabView(
title: "캐릭터",
title: I18n.Tab.character,
width: screenSize().width / 2,
isSelected: viewModel.currentTab == .character
) {
@@ -63,7 +63,7 @@ struct OriginalWorkDetailView: View {
}
SeriesDetailTabView(
title: "작품정보",
title: I18n.Tab.workInfo,
width: screenSize().width / 2,
isSelected: viewModel.currentTab == .info
) {

View File

@@ -12,6 +12,8 @@ import Foundation
// LanguageHeaderProvider.current("ko"|"en"|"ja").
enum I18n {
enum Common {
static var viewAll: String { pick(ko: "전체보기", en: "View all", ja: "すべて見る") }
//
static var apply: String { pick(ko: "적용", en: "Apply", ja: "適用") }
static var confirm: String { pick(ko: "확인", en: "Confirm", ja: "確認") }
@@ -38,8 +40,12 @@ enum I18n {
enum Tab {
// /
static var character: String { pick(ko: "캐릭터", en: "Character", ja: "キャラクター") }
static var work: String { pick(ko: "작품", en: "Work", ja: "作品") }
static var work: String { pick(ko: "작품", en: "Works", ja: "作品") }
static var talk: String { pick(ko: "", en: "Talk", ja: "トーク") }
static var workInfo: String { pick(ko: "작품정보", en: "Work info", ja: "作品情報") }
static var detail: String { pick(ko: "상세", en: "Details", ja: "詳細") }
static var gallery: String { pick(ko: "갤러리", en: "Gallery", ja: "ギャラリー") }
}
}

View File

@@ -20,7 +20,7 @@ struct SettingsView: View {
BaseView(isLoading: $viewModel.isLoading) {
GeometryReader { geo in
VStack(spacing: 0) {
DetailNavigationBar(title: "설정")
DetailNavigationBar(title: String(localized: "설정"))
ScrollView(.vertical, showsIndicators: false) {
VStack(spacing: 0) {