fix(i18n): 예약 날짜와 시간 표시 언어를 앱 설정에 맞춘다

This commit is contained in:
Yu Sung
2026-04-01 18:44:05 +09:00
parent 39700d3b39
commit 243da1eb7d
6 changed files with 55 additions and 10 deletions

View File

@@ -9,6 +9,7 @@ import SwiftUI
import Kingfisher
struct ContentCreateView: View {
@Environment(\.locale) private var locale
@StateObject var keyboardHandler = KeyboardHandler()
@StateObject private var viewModel = ContentCreateViewModel()
@@ -541,7 +542,7 @@ struct ContentCreateView: View {
hideKeyboard()
self.isShowSelectDateView = true
}) {
Text(viewModel.releaseDateString)
Text(viewModel.releaseDate.convertDateFormat(dateFormat: "yyyy.MM.dd", locale: locale))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.grayee)
.frame(maxWidth: .infinity)
@@ -562,7 +563,7 @@ struct ContentCreateView: View {
hideKeyboard()
self.isShowSelectTimeView = true
}) {
Text(viewModel.releaseTimeString)
Text(viewModel.releaseTime.convertDateFormat(dateFormat: "a hh:mm", locale: locale))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.grayee)
.frame(maxWidth: .infinity)

View File

@@ -8,6 +8,7 @@
import SwiftUI
struct QuarterTimePickerView: View {
@Environment(\.locale) private var locale
@Binding var selectedTime: Date
@Binding var isShowing: Bool
@@ -28,7 +29,7 @@ struct QuarterTimePickerView: View {
)
.datePickerStyle(WheelDatePickerStyle())
.labelsHidden()
.environment(\.locale, Locale.init(identifier: "ko"))
.environment(\.locale, locale)
.frame(width: proxy.size.width - 53.4)
.onAppear {
UIDatePicker.appearance().minuteInterval = 15

View File

@@ -8,6 +8,7 @@
import SwiftUI
struct SelectDatePicker: View {
@Environment(\.locale) private var locale
@Binding var selectedDate: Date
@Binding var isShowing: Bool
@@ -24,7 +25,7 @@ struct SelectDatePicker: View {
DatePicker("", selection: $selectedDate, in: Date()..., displayedComponents: .date)
.datePickerStyle(WheelDatePickerStyle())
.labelsHidden()
.environment(\.locale, Locale.init(identifier: "ko"))
.environment(\.locale, locale)
.frame(width: proxy.size.width)
Button(action: { self.isShowing = false }) {

View File

@@ -8,10 +8,10 @@
import Foundation
extension Date {
func convertDateFormat(dateFormat: String = "yyyy.MM.dd") -> String {
func convertDateFormat(dateFormat: String = "yyyy.MM.dd", locale: Locale = .autoupdatingCurrent) -> String {
let formatter = DateFormatter()
formatter.dateFormat = dateFormat
formatter.locale = Locale.autoupdatingCurrent
formatter.locale = locale
formatter.timeZone = TimeZone.current
return formatter.string(from: self)
}

View File

@@ -9,6 +9,7 @@ import SwiftUI
import Kingfisher
struct LiveRoomCreateView: View {
@Environment(\.locale) private var locale
@StateObject var keyboardHandler = KeyboardHandler()
@StateObject var viewModel = LiveRoomCreateViewModel()
@@ -532,7 +533,7 @@ struct LiveRoomCreateView: View {
hideKeyboard()
self.isShowSelectDateView = true
}) {
Text(viewModel.reservationDateString)
Text(viewModel.reservationDate.convertDateFormat(dateFormat: "yyyy.MM.dd", locale: locale))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.grayee)
.frame(width: buttonWidth, height: 48.7)
@@ -552,7 +553,7 @@ struct LiveRoomCreateView: View {
hideKeyboard()
self.isShowSelectTimeView = true
}) {
Text(viewModel.reservationTimeString)
Text(viewModel.reservationTime.convertDateFormat(dateFormat: "a hh : mm", locale: locale))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(Color.grayee)
.frame(width: buttonWidth, height: 48.7)
@@ -604,7 +605,7 @@ struct LiveRoomCreateView: View {
DatePicker("", selection: $viewModel.reservationDate, in: Date()..., displayedComponents: .date)
.datePickerStyle(WheelDatePickerStyle())
.labelsHidden()
.environment(\.locale, Locale.autoupdatingCurrent)
.environment(\.locale, locale)
.frame(width: proxy.size.width)
Button(action: { self.isShowSelectDateView = false }) {
@@ -635,7 +636,7 @@ struct LiveRoomCreateView: View {
DatePicker("", selection: $viewModel.reservationTime, displayedComponents: .hourAndMinute)
.datePickerStyle(WheelDatePickerStyle())
.labelsHidden()
.environment(\.locale, Locale.autoupdatingCurrent)
.environment(\.locale, locale)
.frame(width: proxy.size.width - 53.4)
Button(action: { self.isShowSelectTimeView = false }) {