feat(i18n): 주요 UI 하드코딩 문구를 I18n 키로 통일한다
This commit is contained in:
@@ -20,12 +20,12 @@ struct ApplyAuditionCompleteDialog: View {
|
||||
.opacity(0.5)
|
||||
|
||||
VStack(spacing: 0) {
|
||||
Text("오디션 지원")
|
||||
Text(I18n.Audition.Apply.title)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
.padding(.top, 26.7)
|
||||
|
||||
Text("보이스온 오디션에 지원해 주셔서 감사합니다.")
|
||||
|
||||
Text(I18n.Dialog.ApplyAuditionComplete.thankYouDescription)
|
||||
.appFont(size: 15, weight: .medium)
|
||||
.foregroundColor(Color.graybb)
|
||||
.padding(.top, 15)
|
||||
@@ -40,7 +40,7 @@ struct ApplyAuditionCompleteDialog: View {
|
||||
.foregroundColor(Color.graybb)
|
||||
.padding(.top, 10)
|
||||
|
||||
Text("확인")
|
||||
Text(I18n.Common.confirm)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(Color.white)
|
||||
.padding(.vertical, 16)
|
||||
|
||||
@@ -22,12 +22,12 @@ struct CommunityPostPurchaseDialog: View {
|
||||
.frame(width: geo.size.width, height: geo.size.height)
|
||||
|
||||
VStack(spacing: 0) {
|
||||
Text("게시글 보기")
|
||||
Text(I18n.Dialog.CommunityPostPurchase.title)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(Color.graybb)
|
||||
.padding(.top, 40)
|
||||
|
||||
Text("게시글을\n확인하시겠습니까?")
|
||||
Text(I18n.Dialog.CommunityPostPurchase.description)
|
||||
.appFont(size: 15, weight: .medium)
|
||||
.foregroundColor(Color.graybb)
|
||||
.multilineTextAlignment(.center)
|
||||
@@ -35,7 +35,7 @@ struct CommunityPostPurchaseDialog: View {
|
||||
.padding(.horizontal, 13.3)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
Text("취소")
|
||||
Text(I18n.Common.cancel)
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.padding(.vertical, 16)
|
||||
@@ -50,7 +50,7 @@ struct CommunityPostPurchaseDialog: View {
|
||||
isShowing = false
|
||||
}
|
||||
|
||||
Text("\(can)캔으로 보기")
|
||||
Text(I18n.Dialog.CommunityPostPurchase.viewWithCans(can))
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color.white)
|
||||
.padding(.vertical, 16)
|
||||
|
||||
@@ -28,7 +28,7 @@ struct CreatorFollowNotifyDialog: View {
|
||||
|
||||
if isShow {
|
||||
VStack(alignment: .leading, spacing: 24) {
|
||||
Text("알림")
|
||||
Text(I18n.Common.alertTitle)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ struct LivePaymentDialog: View {
|
||||
if let startDateTime = startDateTime, let nowDateTime = nowDateTime, let desc = desc2 {
|
||||
VStack(spacing: 13.3) {
|
||||
HStack(spacing: 6.7) {
|
||||
Text("- 시작 시각 : ")
|
||||
Text(I18n.Dialog.LivePayment.startTimePrefix)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.graybb)
|
||||
|
||||
@@ -46,7 +46,7 @@ struct LivePaymentDialog: View {
|
||||
}
|
||||
|
||||
HStack(spacing: 6.7) {
|
||||
Text("- 현재 시각 :")
|
||||
Text(I18n.Dialog.LivePayment.currentTimePrefix)
|
||||
.appFont(size: 13.3, weight: .medium)
|
||||
.foregroundColor(Color.graybb)
|
||||
.multilineTextAlignment(.leading)
|
||||
@@ -70,7 +70,7 @@ struct LivePaymentDialog: View {
|
||||
}
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
Text("취소")
|
||||
Text(cancelButtonTitle)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.padding(.vertical, 16)
|
||||
@@ -83,7 +83,7 @@ struct LivePaymentDialog: View {
|
||||
)
|
||||
.onTapGesture { cancelButtonAction() }
|
||||
|
||||
Text("결제 후 입장")
|
||||
Text(confirmButtonTitle)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.padding(.vertical, 16)
|
||||
.frame(maxWidth: .infinity)
|
||||
@@ -106,9 +106,9 @@ struct LivePaymentDialog: View {
|
||||
title: "유료 라이브 입장",
|
||||
desc: "OO캔을 차감하고\n라이브에 입장 하시겠습니까?",
|
||||
desc2: "라이브가 시작한 지 1시간 10분이 지났습니다. 라이브에 입장 후 30분 이내에 라이브가 종료될 수도 있습니다.",
|
||||
confirmButtonTitle: "",
|
||||
confirmButtonTitle: I18n.MemberChannel.paidLiveConfirmTitle,
|
||||
confirmButtonAction: {},
|
||||
cancelButtonTitle: "",
|
||||
cancelButtonTitle: I18n.Common.cancel,
|
||||
cancelButtonAction: {},
|
||||
startDateTime: "2024-01-01 15:00",
|
||||
nowDateTime: "2024-01-02 15:00"
|
||||
|
||||
@@ -25,12 +25,12 @@ struct LiveRoomPasswordDialog: View {
|
||||
.frame(width: geo.size.width, height: geo.size.height)
|
||||
|
||||
VStack(spacing: 0) {
|
||||
Text("비밀번호 입력")
|
||||
Text(I18n.Dialog.LiveRoomPassword.title)
|
||||
.appFont(size: 18.3, weight: .bold)
|
||||
.foregroundColor(Color(hex: "bbbbbb"))
|
||||
.padding(.top, 40)
|
||||
|
||||
Text("비공개 라이브의 입장 비밀번호를\n입력해 주세요.")
|
||||
Text(I18n.Dialog.LiveRoomPassword.description)
|
||||
.appFont(size: 13, weight: .medium)
|
||||
.foregroundColor(Color(hex: "bbbbbb"))
|
||||
.multilineTextAlignment(.center)
|
||||
@@ -38,8 +38,8 @@ struct LiveRoomPasswordDialog: View {
|
||||
.padding(.horizontal, 13.3)
|
||||
|
||||
UserTextField(
|
||||
title: "비밀번호",
|
||||
hint: "비밀번호를 입력해 주세요",
|
||||
title: I18n.Dialog.LiveRoomPassword.passwordFieldTitle,
|
||||
hint: I18n.Dialog.LiveRoomPassword.passwordFieldPlaceholder,
|
||||
isSecure: false,
|
||||
variable: $password,
|
||||
keyboardType: .numberPad
|
||||
@@ -48,7 +48,7 @@ struct LiveRoomPasswordDialog: View {
|
||||
.padding(.top, 13.3)
|
||||
|
||||
HStack(spacing: 13.3) {
|
||||
Text("취소")
|
||||
Text(I18n.Common.cancel)
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color(hex: "3bb9f1"))
|
||||
.padding(.vertical, 16)
|
||||
@@ -73,7 +73,7 @@ struct LiveRoomPasswordDialog: View {
|
||||
.resizable()
|
||||
.frame(width: 20, height: 20)
|
||||
|
||||
Text("으로 입장")
|
||||
Text(I18n.Dialog.LiveRoomPassword.enterSuffix)
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color(hex: "ffffff"))
|
||||
}
|
||||
@@ -90,7 +90,7 @@ struct LiveRoomPasswordDialog: View {
|
||||
isShowing = false
|
||||
}
|
||||
} else {
|
||||
Text("입장하기")
|
||||
Text(I18n.Dialog.LiveRoomPassword.enter)
|
||||
.appFont(size: 15.3, weight: .bold)
|
||||
.foregroundColor(Color(hex: "ffffff"))
|
||||
.padding(.vertical, 16)
|
||||
|
||||
@@ -25,7 +25,7 @@ struct MemberProfileDialog: View {
|
||||
|
||||
VStack(alignment: .leading, spacing: 21) {
|
||||
HStack(spacing: 0) {
|
||||
Text("프로필")
|
||||
Text(I18n.Dialog.MemberProfile.title)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color.grayee)
|
||||
|
||||
@@ -56,7 +56,7 @@ struct MemberProfileDialog: View {
|
||||
.cornerRadius(8)
|
||||
|
||||
HStack(spacing: 8) {
|
||||
Text(profile.isBlocked ? "차단 해제" : "차단")
|
||||
Text(profile.isBlocked ? I18n.Dialog.MemberProfile.unblock : I18n.MemberChannel.blockAction)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.frame(maxWidth: .infinity)
|
||||
@@ -76,7 +76,7 @@ struct MemberProfileDialog: View {
|
||||
}
|
||||
}
|
||||
|
||||
Text("사용자 신고")
|
||||
Text(I18n.Dialog.MemberProfile.reportUser)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.frame(maxWidth: .infinity)
|
||||
@@ -90,7 +90,7 @@ struct MemberProfileDialog: View {
|
||||
)
|
||||
.onTapGesture { viewModel.isShowUesrReportView = true }
|
||||
|
||||
Text("프로필 신고")
|
||||
Text(I18n.Dialog.MemberProfile.reportProfile)
|
||||
.appFont(size: 15, weight: .bold)
|
||||
.foregroundColor(Color.button)
|
||||
.frame(maxWidth: .infinity)
|
||||
@@ -115,7 +115,7 @@ struct MemberProfileDialog: View {
|
||||
.frame(maxWidth: screenSize().width - 33.3)
|
||||
.onAppear {
|
||||
if memberId <= 1 {
|
||||
viewModel.errorMessage = "잘못된 요청입니다."
|
||||
viewModel.errorMessage = I18n.Dialog.MemberProfile.invalidRequest
|
||||
viewModel.isShowPopup = true
|
||||
} else {
|
||||
viewModel.getMemberProfile(memberId: memberId)
|
||||
|
||||
Reference in New Issue
Block a user