feat(i18n): 오디션 화면 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-03-31 15:39:57 +09:00
parent 136bfc8eee
commit 222520d5e9
13 changed files with 406 additions and 87 deletions

View File

@@ -30,7 +30,7 @@ struct ApplyMethodView: View {
}
}
Text("오디션 지원방식")
Text(I18n.Audition.ApplyMethod.title)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.graybb)
.padding(.top, 33.3)
@@ -39,7 +39,7 @@ struct ApplyMethodView: View {
HStack(spacing: 3) {
Image("ic_upload")
Text("파일 업로드")
Text(I18n.Audition.ApplyMethod.fileUpload)
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.button)
}
@@ -60,7 +60,7 @@ struct ApplyMethodView: View {
HStack(spacing: 3) {
Image("ic_mic_color_button")
Text("바로 녹음")
Text(I18n.Audition.ApplyMethod.recordNow)
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.button)
}
@@ -81,7 +81,7 @@ struct ApplyMethodView: View {
.padding(.top, 21.3)
HStack(spacing: 0) {
Text("※ 파일은 mp3, aac만 업로드 가능")
Text(I18n.Audition.ApplyMethod.fileFormatNotice)
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.gray77)
.padding(.top, 13.3)

View File

@@ -30,7 +30,7 @@ struct AuditionApplicantRecordingView: View {
VStack {
VStack(spacing: 0) {
HStack(spacing: 0) {
Text("오디션 녹음")
Text(I18n.Audition.Recording.title)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
@@ -76,7 +76,7 @@ struct AuditionApplicantRecordingView: View {
HStack(spacing: 0) {
Spacer()
Text("삭제")
Text(I18n.Common.delete)
.appFont(size: 15.3, weight: .medium)
.foregroundColor(Color.graybb.opacity(0))
@@ -99,7 +99,7 @@ struct AuditionApplicantRecordingView: View {
Spacer()
Text("삭제")
Text(I18n.Common.delete)
.appFont(size: 15.3, weight: .medium)
.foregroundColor(Color.graybb)
.onTapGesture {
@@ -113,7 +113,7 @@ struct AuditionApplicantRecordingView: View {
.padding(.vertical, 52.3)
HStack(spacing: 13.3) {
Text("다시 녹음")
Text(I18n.Audition.Recording.recordAgain)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.button)
.frame(width: (proxy.size.width - 40) / 3, height: 50)
@@ -129,7 +129,7 @@ struct AuditionApplicantRecordingView: View {
soundManager.recordMode = .RECORD
}
Text("녹음완료")
Text(I18n.Audition.Recording.recordComplete)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.frame(width: (proxy.size.width - 40) * 2 / 3, height: 50)
@@ -140,7 +140,7 @@ struct AuditionApplicantRecordingView: View {
let soundData = try Data(contentsOf: soundManager.getAudioFileURL())
onClickCompleteRecording(tempFileName, soundData)
} catch {
errorMessage = "녹음파일을 생성하지 못했습니다.\n다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다."
errorMessage = I18n.Audition.Recording.createFileFailed
isShowPopup = true
}
}

View File

@@ -33,7 +33,7 @@ struct AuditionApplyView: View {
if isShow {
VStack(alignment: .leading, spacing: 0) {
HStack(spacing: 0) {
Text("오디션 지원")
Text(I18n.Audition.Apply.title)
.appFont(size: 18.3, weight: .medium)
.foregroundColor(.white)
@@ -45,7 +45,7 @@ struct AuditionApplyView: View {
}
}
Text("녹음파일")
Text(I18n.Audition.Apply.recordingFile)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(.grayee)
.padding(.top, 20)
@@ -53,7 +53,7 @@ struct AuditionApplyView: View {
HStack(spacing: 4) {
Image("ic_note_square")
Text(filename)
Text(displayFileName)
.appFont(size: 13.3, weight: .medium)
.foregroundColor(.grayd2)
@@ -66,12 +66,12 @@ struct AuditionApplyView: View {
.cornerRadius(5.3)
.padding(.top, 10)
Text("연락처")
Text(I18n.Audition.Apply.contact)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(.grayee)
.padding(.top, 15)
TextField("합격시 받을 연락처를 남겨주세요", text: $phoneNumber)
TextField(I18n.Audition.Apply.contactPlaceholder, text: $phoneNumber)
.autocapitalization(.none)
.disableAutocorrection(true)
.keyboardType(.decimalPad)
@@ -89,7 +89,7 @@ struct AuditionApplyView: View {
.resizable()
.frame(width: 20, height: 20)
Text("보이스온 오디오 드라마 오디션 합격시 개인 연락을 위한 개인 정보(연락처) 수집 및 활용에 동의합니다.\n오디션 지원자는 개인정보 수집 및 활용 동의에 거부할 권리가 있으며 비동의시 오디션 지원은 취소 됩니다.")
Text(I18n.Audition.Apply.privacyAgreement)
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.lineSpacing(3)
@@ -100,7 +100,7 @@ struct AuditionApplyView: View {
isAgree.toggle()
}
Text("오디션 지원하기")
Text(I18n.Audition.Apply.submit)
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.grayee)
.padding(.vertical, 13.3)
@@ -110,7 +110,7 @@ struct AuditionApplyView: View {
.padding(.top, 35)
.onTapGesture {
if !isAgree {
errorMessage = "연락처 수집 및 활용에 동의하셔야 오디션 지원이 가능합니다."
errorMessage = I18n.Audition.Apply.requireAgreement
isShowPopup = true
return
}
@@ -137,6 +137,14 @@ struct AuditionApplyView: View {
}
}
}
private var displayFileName: String {
if filename.hasPrefix("voiceon_now_voice_") {
return I18n.Audition.Apply.recordedVoiceFileName
}
return filename
}
}
#Preview {