feat(i18n): 라이브 룸 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-04-01 13:52:02 +09:00
parent 540238eb48
commit bceec46ebc
36 changed files with 571 additions and 324 deletions

View File

@@ -51,7 +51,7 @@ struct LiveRoomCreateView: View {
.resizable()
.frame(width: 20, height: 20)
Text("라이브 만들기")
Text(I18n.CreateLive.createLiveTitle)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.grayee)
}
@@ -59,7 +59,7 @@ struct LiveRoomCreateView: View {
Spacer()
if viewModel.isShowGetRecentInfoButton {
Text("최근 데이터 가져오기")
Text(I18n.CreateLive.fetchRecentData)
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.button)
.padding(.vertical, 8)
@@ -81,7 +81,7 @@ struct LiveRoomCreateView: View {
ScrollView(.vertical, showsIndicators: false) {
VStack(spacing: 0) {
VStack(spacing: 0) {
Text("썸네일")
Text(I18n.CreateLive.thumbnail)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.padding(.horizontal, 13.3)
@@ -167,7 +167,7 @@ struct LiveRoomCreateView: View {
.padding(.top, 33.3)
VStack(spacing: 13.3) {
Text("크리에이터 입장 설정")
Text(I18n.CreateLive.creatorEntrySetting)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
@@ -235,7 +235,7 @@ struct LiveRoomCreateView: View {
}
}
}) {
Text("라이브 오픈하기")
Text(I18n.CreateLive.openLiveAction)
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.frame(width: screenSize().width - 26.7, height: 50)
@@ -357,13 +357,13 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func TitleInputView() -> some View {
VStack(spacing: 0) {
Text("제목")
Text(I18n.CreateLive.titleLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.padding(.horizontal, 13.3)
.frame(width: screenSize().width, alignment: .leading)
TextField("라이브 제목을 입력하세요", text: $viewModel.title)
TextField(I18n.CreateLive.titlePlaceholder, text: $viewModel.title)
.autocapitalization(.none)
.disableAutocorrection(true)
.appFont(size: 13.3, weight: .medium)
@@ -383,7 +383,7 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func TagSelectView() -> some View {
VStack(alignment: .leading, spacing: 13.3) {
Text("관심사")
Text(I18n.CreateLive.interestsLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
@@ -391,7 +391,7 @@ struct LiveRoomCreateView: View {
hideKeyboard()
isShowSelectTagView = true
}) {
Text("관심사 선택")
Text(I18n.CreateLive.selectInterestsAction)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.button)
.padding(.vertical, 13.7)
@@ -434,16 +434,16 @@ struct LiveRoomCreateView: View {
func ContentInputView() -> some View {
VStack(spacing: 13.3) {
HStack(spacing: 0) {
Text("공지")
Text(I18n.CreateLive.noticeLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
Spacer()
Text("\(viewModel.content.count)")
Text(I18n.CreateLive.noticeCount(viewModel.content.count))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.mainRed)
Text(" / 1000자")
Text(I18n.CreateLive.noticeLimitSuffix)
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.gray77)
}
@@ -463,7 +463,7 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func TimeSettingView() -> some View {
VStack(spacing: 0) {
Text("시간설정")
Text(I18n.CreateLive.timeSettingLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
@@ -524,7 +524,7 @@ struct LiveRoomCreateView: View {
func ReservationDateTimeView(buttonWidth: CGFloat) -> some View {
HStack(spacing: 13.3) {
VStack(alignment: .leading, spacing: 6.7) {
Text("예약 날짜")
Text(I18n.CreateLive.reservationDateLabel)
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
@@ -544,7 +544,7 @@ struct LiveRoomCreateView: View {
}
VStack(alignment: .leading, spacing: 6.7) {
Text("예약 시간")
Text(I18n.CreateLive.reservationTimeLabel)
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
@@ -571,12 +571,12 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func NumberOfPeopleLimitView() -> some View {
VStack(spacing: 13.3) {
Text("참여인원 설정")
Text(I18n.CreateLive.participantLimitLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
TextField("최대 인원 999명", text: $viewModel.numberOfPeople)
TextField(I18n.CreateLive.participantLimitPlaceholder, text: $viewModel.numberOfPeople)
.autocapitalization(.none)
.disableAutocorrection(true)
.multilineTextAlignment(.center)
@@ -608,7 +608,7 @@ struct LiveRoomCreateView: View {
.frame(width: proxy.size.width)
Button(action: { self.isShowSelectDateView = false }) {
Text("확인")
Text(I18n.CreateLive.confirmButton)
.appFont(size: 16)
.foregroundColor(Color.grayee)
.padding(.vertical, 10)
@@ -639,7 +639,7 @@ struct LiveRoomCreateView: View {
.frame(width: proxy.size.width - 53.4)
Button(action: { self.isShowSelectTimeView = false }) {
Text("확인")
Text(I18n.CreateLive.confirmButton)
.appFont(size: 16)
.foregroundColor(Color.grayee)
.padding(.vertical, 10)
@@ -656,7 +656,7 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func RoomTypeSettingView() -> some View {
VStack(spacing: 0) {
Text("공개 설정")
Text(I18n.CreateLive.visibilityLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
@@ -709,12 +709,12 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func RoomPasswordView() -> some View {
VStack(spacing: 13.3) {
Text("방 비밀번호 입력")
Text(I18n.CreateLive.roomPasswordTitle)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
TextField("방 입장 비밀번호 6자리를 입력해 주세요.", text: $viewModel.password)
TextField(I18n.CreateLive.roomPasswordPlaceholder, text: $viewModel.password)
.autocapitalization(.none)
.disableAutocorrection(true)
.multilineTextAlignment(.center)
@@ -732,7 +732,7 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func AdultSettingView() -> some View {
VStack(spacing: 13.3) {
Text("연령 제한")
Text(I18n.CreateLive.ageRestrictionLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
@@ -828,7 +828,7 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func PriceSettingView() -> some View {
VStack(spacing: 13.3) {
Text("티켓 가격")
Text(I18n.CreateLive.ticketPriceLabel)
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
@@ -861,7 +861,7 @@ struct LiveRoomCreateView: View {
Spacer()
Text("")
Text(I18n.CreateLive.canUnit)
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.button)
}
@@ -878,7 +878,7 @@ struct LiveRoomCreateView: View {
@ViewBuilder
func PriceButtonView(price: Int, buttonWidth: CGFloat) -> some View {
HStack(spacing: 6.7) {
Text(price == 0 ? "무료" : "\(price)")
Text(I18n.CreateLive.priceOption(price))
.appFont(size: 14.7, weight: viewModel.price == price ? .bold : .medium)
.foregroundColor(viewModel.price == price ? Color.button : Color.gray77)
}