feat(i18n): 오디션 화면 하드코딩 문구를 I18n 키로 통일한다
This commit is contained in:
@@ -45,7 +45,7 @@ struct AuditionRoleDetailView: View {
|
||||
|
||||
HStack(spacing: 14) {
|
||||
if let url = URL(string: roleDetail.originalWorkUrl), UIApplication.shared.canOpenURL(url) {
|
||||
Text("원작 보러가기")
|
||||
Text(I18n.Audition.Detail.viewOriginalWork)
|
||||
.appFont(size: 16, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.padding(.vertical, 12)
|
||||
@@ -59,7 +59,7 @@ struct AuditionRoleDetailView: View {
|
||||
}
|
||||
|
||||
if let url = URL(string: roleDetail.auditionScriptUrl), UIApplication.shared.canOpenURL(url) {
|
||||
Text("오디션 대본 확인")
|
||||
Text(I18n.Audition.Detail.checkScript)
|
||||
.appFont(size: 16, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.padding(.vertical, 12)
|
||||
@@ -74,7 +74,7 @@ struct AuditionRoleDetailView: View {
|
||||
}
|
||||
|
||||
VStack(alignment: .leading, spacing: 13.3) {
|
||||
Text("오디션 캐릭터 정보")
|
||||
Text(I18n.Audition.Detail.characterInfo)
|
||||
.appFont(size: 14.7, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -83,13 +83,13 @@ struct AuditionRoleDetailView: View {
|
||||
}
|
||||
|
||||
if viewModel.applicantList.isEmpty {
|
||||
Text("지원자가 없습니다.")
|
||||
Text(I18n.Audition.Detail.noApplicants)
|
||||
.appFont(size: 13, weight: .medium)
|
||||
.foregroundColor(Color.grayee)
|
||||
.padding(.top, 15)
|
||||
} else {
|
||||
HStack(spacing: 0) {
|
||||
Text("참여자")
|
||||
Text(I18n.Audition.Detail.participants)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.graybb)
|
||||
|
||||
@@ -98,13 +98,13 @@ struct AuditionRoleDetailView: View {
|
||||
.foregroundColor(Color.button)
|
||||
.padding(.leading, 2.3)
|
||||
|
||||
Text("명")
|
||||
Text(I18n.Audition.Detail.personUnit)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.graybb)
|
||||
|
||||
Spacer()
|
||||
|
||||
Text("최신순")
|
||||
Text(I18n.Audition.Detail.sortNewest)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(
|
||||
viewModel.sortType == .NEWEST ? Color.button : Color.graybb
|
||||
@@ -113,7 +113,7 @@ struct AuditionRoleDetailView: View {
|
||||
viewModel.setSortType(sortType: .NEWEST)
|
||||
}
|
||||
|
||||
Text("좋아요순")
|
||||
Text(I18n.Audition.Detail.sortLikes)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(
|
||||
viewModel.sortType == .LIKES ? Color.button : Color.graybb
|
||||
@@ -161,7 +161,7 @@ struct AuditionRoleDetailView: View {
|
||||
}
|
||||
|
||||
if let roleDetail = viewModel.auditionRoleDetail {
|
||||
Text(roleDetail.isAlreadyApplicant ? "오디션 재지원" : "오디션 지원")
|
||||
Text(roleDetail.isAlreadyApplicant ? I18n.Audition.Apply.reapply : I18n.Audition.Apply.apply)
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color.white)
|
||||
.padding(14)
|
||||
@@ -241,9 +241,9 @@ struct AuditionRoleDetailView: View {
|
||||
|
||||
if isShowNoticeReapply {
|
||||
SodaDialog(
|
||||
title: "재지원 안내",
|
||||
desc: "재지원 시 이전 지원 내역은 삭제되며 받은 투표수는 무효 처리됩니다.",
|
||||
confirmButtonTitle: "확인"
|
||||
title: I18n.Audition.Apply.reapplyNoticeTitle,
|
||||
desc: I18n.Audition.Apply.reapplyNoticeDesc,
|
||||
confirmButtonTitle: I18n.Common.confirm
|
||||
) {
|
||||
isShowNoticeReapply = false
|
||||
isShowApplyMethodView = true
|
||||
@@ -252,9 +252,9 @@ struct AuditionRoleDetailView: View {
|
||||
|
||||
if isShowNoticeAuthView {
|
||||
SodaDialog(
|
||||
title: "- 본인인증 -",
|
||||
desc: "마이페이지에서 '본인인증'을 하고 다시 오디션에 지원해 주세요.",
|
||||
confirmButtonTitle: "확인"
|
||||
title: I18n.Audition.Apply.authRequiredTitle,
|
||||
desc: I18n.Audition.Apply.authRequiredDesc,
|
||||
confirmButtonTitle: I18n.Common.confirm
|
||||
) {
|
||||
isShowNoticeAuthView = false
|
||||
}
|
||||
@@ -264,7 +264,7 @@ struct AuditionRoleDetailView: View {
|
||||
SodaDialog(
|
||||
title: viewModel.dialogTitle,
|
||||
desc: viewModel.dialogDesc,
|
||||
confirmButtonTitle: "확인"
|
||||
confirmButtonTitle: I18n.Common.confirm
|
||||
) {
|
||||
viewModel.isShowVoteCompleteView = false
|
||||
viewModel.isShowNotifyVote = false
|
||||
@@ -300,17 +300,17 @@ struct AuditionRoleDetailView: View {
|
||||
viewModel.fileName = fileUrl.lastPathComponent
|
||||
isShowApplyView = true
|
||||
} else {
|
||||
viewModel.errorMessage = "콘텐츠 파일을 불러오지 못했습니다.\n다시 선택해 주세요"
|
||||
viewModel.errorMessage = I18n.Audition.Apply.fileLoadFailed
|
||||
viewModel.isShowPopup = true
|
||||
}
|
||||
} else {
|
||||
viewModel.errorMessage = "콘텐츠 파일을 불러오지 못했습니다.\n다시 선택해 주세요"
|
||||
viewModel.errorMessage = I18n.Audition.Apply.fileLoadFailed
|
||||
viewModel.isShowPopup = true
|
||||
}
|
||||
|
||||
case .failure(let error):
|
||||
DEBUG_LOG("error: \(error.localizedDescription)")
|
||||
viewModel.errorMessage = "콘텐츠 파일을 불러오지 못했습니다.\n다시 선택해 주세요"
|
||||
viewModel.errorMessage = I18n.Audition.Apply.fileLoadFailed
|
||||
viewModel.isShowPopup = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user