콘텐츠 작성 및 라이브 메뉴 다국어화
콘텐츠 등록 화면 텍스트와 버튼을 I18n 기반 번역 문자열로 교체 룰렛 설정과 미션 메뉴 버튼 라벨을 다국어 문자열로 통일 신규 텍스트를 String Catalog에 추가하여 네비게이션 타이틀 번역
This commit is contained in:
@@ -24,7 +24,7 @@ struct ContentCreateView: View {
|
||||
GeometryReader { proxy in
|
||||
ZStack {
|
||||
VStack(spacing: 0) {
|
||||
DetailNavigationBar(title: "콘텐츠 등록")
|
||||
DetailNavigationBar(title: String(localized: "콘텐츠 등록"))
|
||||
|
||||
ScrollView(.vertical, showsIndicators: false) {
|
||||
VStack(spacing: 0) {
|
||||
@@ -67,7 +67,7 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.padding(.top, 13.3)
|
||||
|
||||
Text(viewModel.fileName.trimmingCharacters(in: .whitespacesAndNewlines) == "" ? "파일선택" : viewModel.fileName)
|
||||
Text(viewModel.fileName.trimmingCharacters(in: .whitespacesAndNewlines) == "" ? I18n.CreateContent.selectFile : viewModel.fileName)
|
||||
.font(.custom(Font.medium.rawValue, size: 16.7))
|
||||
.foregroundColor(Color.button)
|
||||
.padding(.vertical, 10)
|
||||
@@ -126,7 +126,7 @@ struct ContentCreateView: View {
|
||||
|
||||
TextViewWrapper(
|
||||
text: $viewModel.detail,
|
||||
placeholder: viewModel.placeholder,
|
||||
placeholder: I18n.CreateContent.uploadContentDescriptionHint,
|
||||
textColorHex: "eeeeee",
|
||||
backgroundColorHex: "222222"
|
||||
)
|
||||
@@ -157,7 +157,7 @@ struct ContentCreateView: View {
|
||||
|
||||
Text(viewModel.theme != nil ?
|
||||
viewModel.theme!.theme :
|
||||
"테마 선택")
|
||||
I18n.CreateContent.selectTheme)
|
||||
.font(.custom(Font.bold.rawValue, size: 16.7))
|
||||
.foregroundColor(Color.button)
|
||||
}
|
||||
@@ -209,13 +209,13 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "무료", isChecked: viewModel.isFree) {
|
||||
SelectButtonView(title: I18n.CreateContent.free, isChecked: viewModel.isFree) {
|
||||
if !viewModel.isFree {
|
||||
viewModel.isFree = true
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "유료", isChecked: !viewModel.isFree) {
|
||||
|
||||
SelectButtonView(title: I18n.CreateContent.paid, isChecked: !viewModel.isFree) {
|
||||
if viewModel.isFree {
|
||||
viewModel.isFree = false
|
||||
}
|
||||
@@ -230,19 +230,19 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 6.7) {
|
||||
SelectButtonView(title: "소장/대여", isChecked: viewModel.purchaseOption == .BOTH) {
|
||||
SelectButtonView(title: I18n.CreateContent.purchaseBoth, isChecked: viewModel.purchaseOption == .BOTH) {
|
||||
if viewModel.purchaseOption != .BOTH {
|
||||
viewModel.purchaseOption = .BOTH
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "소장만", isChecked: viewModel.purchaseOption == .BUY_ONLY) {
|
||||
SelectButtonView(title: I18n.CreateContent.purchaseBuyOnly, isChecked: viewModel.purchaseOption == .BUY_ONLY) {
|
||||
if viewModel.purchaseOption != .BUY_ONLY {
|
||||
viewModel.purchaseOption = .BUY_ONLY
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "대여만", isChecked: viewModel.purchaseOption == .RENT_ONLY) {
|
||||
SelectButtonView(title: I18n.CreateContent.purchaseRentOnly, isChecked: viewModel.purchaseOption == .RENT_ONLY) {
|
||||
if viewModel.purchaseOption != .RENT_ONLY {
|
||||
viewModel.purchaseOption = .RENT_ONLY
|
||||
}
|
||||
@@ -310,13 +310,13 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "무제한", isChecked: !viewModel.isLimited) {
|
||||
SelectButtonView(title: I18n.CreateContent.unlimited, isChecked: !viewModel.isLimited) {
|
||||
if viewModel.isLimited {
|
||||
viewModel.isLimited = false
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "한정판", isChecked: viewModel.isLimited) {
|
||||
SelectButtonView(title: I18n.CreateContent.limitedEdition, isChecked: viewModel.isLimited) {
|
||||
if !viewModel.isLimited {
|
||||
viewModel.isLimited = true
|
||||
}
|
||||
@@ -347,13 +347,13 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "가능", isChecked: viewModel.isPointAvailable) {
|
||||
SelectButtonView(title: I18n.CreateContent.available, isChecked: viewModel.isPointAvailable) {
|
||||
if !viewModel.isPointAvailable {
|
||||
viewModel.isPointAvailable = true
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "불가능", isChecked: !viewModel.isPointAvailable) {
|
||||
SelectButtonView(title: I18n.CreateContent.unavailable, isChecked: !viewModel.isPointAvailable) {
|
||||
if viewModel.isPointAvailable {
|
||||
viewModel.isPointAvailable = false
|
||||
}
|
||||
@@ -369,13 +369,13 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "생성", isChecked: viewModel.isGeneratePreview) {
|
||||
SelectButtonView(title: I18n.CreateContent.generate, isChecked: viewModel.isGeneratePreview) {
|
||||
if !viewModel.isGeneratePreview {
|
||||
viewModel.isGeneratePreview = true
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "생성 안 함", isChecked: !viewModel.isGeneratePreview) {
|
||||
SelectButtonView(title: I18n.CreateContent.doNotGenerate, isChecked: !viewModel.isGeneratePreview) {
|
||||
if viewModel.isGeneratePreview {
|
||||
viewModel.isGeneratePreview = false
|
||||
}
|
||||
@@ -451,13 +451,13 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "전체 연령", isChecked: !viewModel.isAdult) {
|
||||
SelectButtonView(title: I18n.CreateContent.allAges, isChecked: !viewModel.isAdult) {
|
||||
if viewModel.isAdult {
|
||||
viewModel.isAdult = false
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "19세 이상", isChecked: viewModel.isAdult) {
|
||||
|
||||
SelectButtonView(title: I18n.CreateContent.over19, isChecked: viewModel.isAdult) {
|
||||
if !viewModel.isAdult {
|
||||
viewModel.isAdult = true
|
||||
}
|
||||
@@ -480,13 +480,13 @@ struct ContentCreateView: View {
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "댓글 가능", isChecked: viewModel.isAvailableComment) {
|
||||
SelectButtonView(title: I18n.CreateContent.commentAllowed, isChecked: viewModel.isAvailableComment) {
|
||||
if !viewModel.isAvailableComment {
|
||||
viewModel.isAvailableComment = true
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "댓글 불가", isChecked: !viewModel.isAvailableComment) {
|
||||
|
||||
SelectButtonView(title: I18n.CreateContent.commentNotAllowed, isChecked: !viewModel.isAvailableComment) {
|
||||
if viewModel.isAvailableComment {
|
||||
viewModel.isAvailableComment = false
|
||||
}
|
||||
@@ -497,19 +497,19 @@ struct ContentCreateView: View {
|
||||
.padding(.horizontal, 13.3)
|
||||
|
||||
VStack(spacing: 13.3) {
|
||||
Text("예약 공개")
|
||||
Text(I18n.CreateContent.publishReserved)
|
||||
.font(.custom(Font.bold.rawValue, size: 16.7))
|
||||
.foregroundColor(Color.grayee)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
SelectButtonView(title: "지금 공개", isChecked: !viewModel.isActiveReservation) {
|
||||
SelectButtonView(title: I18n.CreateContent.publishNow, isChecked: !viewModel.isActiveReservation) {
|
||||
if viewModel.isActiveReservation {
|
||||
viewModel.isActiveReservation = false
|
||||
}
|
||||
}
|
||||
|
||||
SelectButtonView(title: "예약 공개", isChecked: viewModel.isActiveReservation) {
|
||||
|
||||
SelectButtonView(title: I18n.CreateContent.publishReserved, isChecked: viewModel.isActiveReservation) {
|
||||
if !viewModel.isActiveReservation {
|
||||
viewModel.isActiveReservation = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user