42 lines
2.8 KiB
Markdown
42 lines
2.8 KiB
Markdown
# 20260401 예약 일시 언어 적용
|
|
|
|
## 작업 체크리스트
|
|
- [x] 앱 언어 설정 주입 경로와 예약 날짜/시간 로케일 override 지점을 확인한다.
|
|
- [x] `LiveRoomCreateView` 예약 날짜/시간 표시가 앱 설정 언어를 따르도록 수정한다.
|
|
- [x] `ContentCreateView` 예약 날짜/시간 표시가 앱 설정 언어를 따르도록 수정한다.
|
|
- [x] 예약용 날짜/시간 picker가 앱 설정 언어를 따르도록 수정한다.
|
|
- [x] 변경 사항을 diagnostics/build/manual QA로 검증한다.
|
|
|
|
## 수용 기준 (Acceptance Criteria)
|
|
- [x] `LiveRoomCreateView`의 예약 날짜/시간 버튼 텍스트가 앱 설정 언어 기준으로 표시된다.
|
|
- [x] `ContentCreateView`의 예약 날짜/시간 버튼 텍스트가 앱 설정 언어 기준으로 표시된다.
|
|
- [x] 두 화면의 날짜/시간 picker가 앱 설정 언어 기준으로 표시된다.
|
|
- [x] 예약 API 전송 포맷(`yyyy-MM-dd`, `HH:mm`)은 변경되지 않는다.
|
|
|
|
## 구현 메모
|
|
- 앱 루트 `SodaLiveApp`에서 `.environment(\.locale, languageEnvironment.locale)`를 이미 주입하고 있다.
|
|
- 이번 작업은 생성 화면과 picker 내부의 locale override 제거/교체만 수행한다.
|
|
- 전역 날짜 포맷 기본 동작은 변경하지 않고, 대상 화면에서만 앱 locale을 명시 사용한다.
|
|
|
|
## 검증 기록
|
|
- 2026-04-01: 탐색 완료
|
|
- 무엇: 앱 언어 source of truth와 예약 날짜/시간 표시 경로 확인
|
|
- 왜: 시스템 locale 대신 앱 설정 locale을 따라야 하는 실제 수정 지점 식별 필요
|
|
- 어떻게: `LanguageService`, `SodaLiveApp`, `DateExtension`, 생성 화면/피커 구현 확인
|
|
- 결과: 앱 루트 locale 주입은 이미 존재하며, 생성 화면에서 picker/date text가 이를 덮어쓰는 것이 원인으로 확인됨
|
|
- 2026-04-01: 구현 및 검증 완료
|
|
- 무엇: 생성 화면 예약 날짜/시간 텍스트와 picker locale을 앱 설정 locale 기준으로 수정
|
|
- 왜: 시스템 언어와 앱 설정 언어가 다를 때 예약 UI가 항상 한국어 또는 시스템 locale로 표시되던 문제 해결 필요
|
|
- 어떻게:
|
|
- `LiveRoomCreateView`, `ContentCreateView`에서 버튼 텍스트를 `Date.convertDateFormat(..., locale: locale)`로 표시
|
|
- `LiveRoomCreateView`, `SelectDatePicker`, `QuarterTimePickerView`에서 picker locale override를 앱 environment locale로 교체
|
|
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build` 실행
|
|
- `swift` 스크립트로 동일 시각 포맷을 `ko_KR`/`en_US`/`ja_JP`에 대해 출력 확인
|
|
- 결과:
|
|
- Debug build 성공 (`** BUILD SUCCEEDED **`)
|
|
- 포맷 출력 확인
|
|
- `ko_KR`: `오후 09:15`
|
|
- `en_US`: `PM 09:15`
|
|
- `ja_JP`: `午後 09:15`
|
|
- 예약 API 전송용 `yyyy-MM-dd`, `HH:mm` 포맷 코드는 변경하지 않음
|