Files
sodalive-ios/docs/20260401_예약일시언어적용.md

2.8 KiB

20260401 예약 일시 언어 적용

작업 체크리스트

  • 앱 언어 설정 주입 경로와 예약 날짜/시간 로케일 override 지점을 확인한다.
  • LiveRoomCreateView 예약 날짜/시간 표시가 앱 설정 언어를 따르도록 수정한다.
  • ContentCreateView 예약 날짜/시간 표시가 앱 설정 언어를 따르도록 수정한다.
  • 예약용 날짜/시간 picker가 앱 설정 언어를 따르도록 수정한다.
  • 변경 사항을 diagnostics/build/manual QA로 검증한다.

수용 기준 (Acceptance Criteria)

  • LiveRoomCreateView의 예약 날짜/시간 버튼 텍스트가 앱 설정 언어 기준으로 표시된다.
  • ContentCreateView의 예약 날짜/시간 버튼 텍스트가 앱 설정 언어 기준으로 표시된다.
  • 두 화면의 날짜/시간 picker가 앱 설정 언어 기준으로 표시된다.
  • 예약 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 포맷 코드는 변경하지 않음