feat(i18n): 마이페이지 그룹 3~5 하드코딩 문구를 I18n 키로 통일한다
This commit is contained in:
@@ -435,31 +435,31 @@
|
||||
- [x] `SodaLive/Sources/MyPage/OrderList/OrderListAllInnerView.swift`
|
||||
|
||||
#### Group 3 (21-30)
|
||||
- [ ] `SodaLive/Sources/MyPage/OrderList/OrderListAllView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/OrderList/OrderListAllViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/OrderList/OrderListItemView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/OrderList/OrderListView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Point/PointStatusView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Point/PointStatusViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Point/Use/PointUseStatusView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Profile/Nickname/NicknameUpdateView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Profile/Nickname/NicknameUpdateViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Profile/ProfileUpdateView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/OrderList/OrderListAllView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/OrderList/OrderListAllViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/OrderList/OrderListItemView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/OrderList/OrderListView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Point/PointStatusView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Point/PointStatusViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Point/Use/PointUseStatusView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Profile/Nickname/NicknameUpdateView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Profile/Nickname/NicknameUpdateViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Profile/ProfileUpdateView.swift`
|
||||
|
||||
#### Group 4 (31-40)
|
||||
- [ ] `SodaLive/Sources/MyPage/Profile/Tag/MemberTagView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Profile/Tag/MemberTagViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ReservationStatus/Cancel/LiveReservationCancelView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ReservationStatus/LiveReservationStatusItemView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ReservationStatus/LiveReservationStatusView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ReservationStatus/LiveReservationStatusViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ReservationStatusView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ServiceCenter/FaqView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterButtonView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Profile/Tag/MemberTagView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Profile/Tag/MemberTagViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ReservationStatus/Cancel/LiveReservationCancelView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ReservationStatus/LiveReservationStatusItemView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ReservationStatus/LiveReservationStatusView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ReservationStatus/LiveReservationStatusViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ReservationStatusView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ServiceCenter/FaqView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterButtonView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterView.swift`
|
||||
|
||||
#### Group 5 (41-41)
|
||||
- [ ] `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterViewModel.swift`
|
||||
|
||||
### Notification (2)
|
||||
- [x] `SodaLive/Sources/Notification/List/PushNotificationListItemView.swift`
|
||||
@@ -830,3 +830,39 @@
|
||||
- LSP 진단: SourceKit 단독 해석 환경에서 외부 모듈/프로젝트 심볼 미해결 오류(`Bootpay`, `Kingfisher`, `I18n` 등)가 보고되나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증 완료.
|
||||
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
|
||||
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 테스트 액션 미구성 확인(코드 실패 아님, 스킴 제약).
|
||||
|
||||
### 16차 구현 (MyPage 모듈 Group 3~5, 21개 파일 처리, 2026-03-31)
|
||||
- 무엇/왜/어떻게:
|
||||
- 무엇: `변경 대상 파일 전체 목록`의 `MyPage` Group 3~5(21개 파일)에서 사용자 노출 하드코딩 문구를 `I18n.*` 참조로 전환하고 체크박스를 완료 처리.
|
||||
- 왜: OrderList/Point/Profile/ReservationStatus/ServiceCenter 구간에 뷰 리터럴과 ViewModel 공통 오류 문구가 남아 있어 `I18n.swift` 단일 접근 원칙과 불일치했기 때문.
|
||||
- 어떻게: explore/librarian 병렬 탐색 + `grep`/`ast_grep_search` 직접 검증으로 런타임 노출 문자열만 추출한 뒤, `I18n.swift`에 `I18n.MyPage` 하위 네임스페이스(`OrderList`, `Point`, `Nickname`, `Profile`, `ReservationStatus`, `Reservation`, `ServiceCenter`)를 추가하고 호출부를 일괄 치환.
|
||||
- 실행 명령/도구:
|
||||
- `task(subagent_type="explore", ...)` x2 (`bg_df9bea1f`, `bg_a7a90096`)
|
||||
- `task(subagent_type="librarian", ...)` x2 (`bg_a3ce40e4`, `bg_0d380792`)
|
||||
- `background_output(task_id=...)` x4 (위 4개 task 결과 수집)
|
||||
- `grep("\"[^\"]*[가-힣][^\"]*\"", include=*.swift, path=SodaLive/Sources/MyPage/**)`
|
||||
- `grep("String\\(localized:|NSLocalizedString\\(|LocalizedStringKey\\(", include=*.swift, path=SodaLive/Sources/MyPage)`
|
||||
- `ast_grep_search(pattern="Text(\"$TEXT\")", lang=swift, paths=[SodaLive/Sources/MyPage/{OrderList,Point,Profile,ReservationStatus,ServiceCenter}])`
|
||||
- `bash: rg -n ...` (`command not found` 확인)
|
||||
- `lsp_diagnostics(filePath=변경 파일 전체)`
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build`
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build`
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test`
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test`
|
||||
- 결과:
|
||||
- `I18n.swift`에 `I18n.MyPage` Group 3~5 대응 키셋 추가/확장 완료.
|
||||
- 추가: `OrderList`, `Point`, `Nickname`, `Profile`, `ReservationStatus`, `Reservation.LiveStatus`, `Reservation.Cancel`, `ServiceCenter`.
|
||||
- 재사용: 공통 실패 문구는 `I18n.Common.commonError`로 통합.
|
||||
- 치환 완료 파일(20개):
|
||||
- `OrderListAllView`, `OrderListAllViewModel`, `OrderListItemView`, `OrderListView`
|
||||
- `PointStatusView`, `PointStatusViewModel`
|
||||
- `NicknameUpdateView`, `NicknameUpdateViewModel`, `ProfileUpdateView`
|
||||
- `MemberTagView`, `MemberTagViewModel`
|
||||
- `LiveReservationCancelView`, `LiveReservationStatusItemView`, `LiveReservationStatusView`, `LiveReservationStatusViewModel`, `ReservationStatusView`
|
||||
- `FaqView`, `ServiceCenterButtonView`, `ServiceCenterView`, `ServiceCenterViewModel`
|
||||
- 점검만 수행(실치환 없음, 체크 완료): `PointUseStatusView.swift` (런타임 노출 하드코딩 문자열 없음).
|
||||
- 대상 재탐지 결과, Group 3~5 영역의 잔여 한글 리터럴은 Preview 샘플 데이터(`"여행"`, `"질문1"` 등)만 존재.
|
||||
- Group 3~5 체크박스 21개 `- [x]` 완료 반영.
|
||||
- LSP 진단: SourceKit 단독 해석 환경에서 외부 모듈/프로젝트 심볼 미해결 오류(`Kingfisher`, `RichText`, `AppState` 등)가 보고되나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증 완료.
|
||||
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
|
||||
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 테스트 액션 미구성 확인(코드 실패 아님, 스킴 제약).
|
||||
|
||||
Reference in New Issue
Block a user