feat(i18n): 마이페이지 하드코딩 문구를 I18n 키로 통일한다
This commit is contained in:
@@ -411,28 +411,28 @@
|
||||
|
||||
### MyPage (41)
|
||||
#### Group 1 (1-10)
|
||||
- [ ] `SodaLive/Sources/MyPage/Auth/AuthButtonView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Block/BlockMemberListView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Block/BlockedMemberListItemView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Charge/CanChargeView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Charge/CanChargeViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Coupon/CanChargeCouponButtonView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Coupon/CanCouponNoticeItemView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Payment/CanPaymentView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Payment/CanPaymentViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Payment/CanPgPaymentView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Auth/AuthButtonView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Block/BlockMemberListView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Block/BlockedMemberListItemView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Charge/CanChargeView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Charge/CanChargeViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Coupon/CanChargeCouponButtonView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Coupon/CanCouponNoticeItemView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Payment/CanPaymentView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Payment/CanPaymentViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Payment/CanPgPaymentView.swift`
|
||||
|
||||
#### Group 2 (11-20)
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Payment/CanPgPaymentViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Payment/Temp/CanPaymentTempView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Payment/Temp/CanPaymentTempViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Status/CanStatusView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Status/CanStatusViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/Can/Status/CanUseStatusView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/CanCardView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/MyPageView.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/MyPageViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/MyPage/OrderList/OrderListAllInnerView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Payment/CanPgPaymentViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Payment/Temp/CanPaymentTempView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Payment/Temp/CanPaymentTempViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Status/CanStatusView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Status/CanStatusViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/Can/Status/CanUseStatusView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/CanCardView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/MyPageView.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/MyPageViewModel.swift`
|
||||
- [x] `SodaLive/Sources/MyPage/OrderList/OrderListAllInnerView.swift`
|
||||
|
||||
#### Group 3 (21-30)
|
||||
- [ ] `SodaLive/Sources/MyPage/OrderList/OrderListAllView.swift`
|
||||
@@ -802,3 +802,31 @@
|
||||
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
|
||||
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 테스트 액션 미구성 확인(코드 실패 아님, 스킴 제약).
|
||||
- LSP 진단: SourceKit 단독 해석 환경에서 외부 모듈/프로젝트 심볼 미해결 오류(`Moya`, `I18n`, `LoadingView` 등)가 보고되나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증 완료.
|
||||
|
||||
### 15차 구현 (MyPage 모듈 Group 1~2, 20개 파일 처리, 2026-03-31)
|
||||
- 무엇/왜/어떻게:
|
||||
- 무엇: `변경 대상 파일 전체 목록`의 `MyPage` Group 1~2(20개 파일)에서 사용자 노출 하드코딩 문구를 `I18n.*` 참조로 전환하고 체크박스를 완료 처리.
|
||||
- 왜: MyPage 영역에 `String(localized:)` 직접 참조, 뷰 리터럴, ViewModel 반복 에러 문구가 혼재되어 모듈 단위 i18n 일관성이 깨져 있었기 때문.
|
||||
- 어떻게: explore/librarian 병렬 탐색 + `grep`/`ast_grep_search`로 런타임 노출 문자열을 분류한 뒤, `I18n.swift`에 `I18n.MyPage` 네임스페이스를 추가하고 Group 1~2 호출부를 일괄 치환.
|
||||
- 실행 명령/도구:
|
||||
- `task(subagent_type="explore", ...)` x2 (`bg_2804258c`, `bg_56679c82`)
|
||||
- `task(subagent_type="librarian", ...)` x2 (`bg_82e0b3b7`, `bg_a708658e`)
|
||||
- `grep("\b(String\(localized:|NSLocalizedString\(|LocalizedStringKey\()", include=*.swift, path=SodaLive/Sources/MyPage)`
|
||||
- `grep("\"[^\"]*[가-힣][^\"]*\"", include=*.swift, path=SodaLive/Sources/MyPage)` + 대상 파일별 개별 재검증
|
||||
- `ast_grep_search(pattern="Text(\"$TEXT\")", lang=swift, paths=[SodaLive/Sources/MyPage])`
|
||||
- `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` 키셋 추가(`Common`, `Auth`, `Block`, `Can`, `Can.Payment`, `Main`, `Category`).
|
||||
- 치환 완료 파일: `AuthButtonView`, `BlockMemberListView`, `BlockedMemberListItemView`, `CanChargeView`, `CanChargeViewModel`, `CanChargeCouponButtonView`, `CanPaymentView`, `CanPaymentViewModel`, `CanPgPaymentView`, `CanPgPaymentViewModel`, `CanPaymentTempView`, `CanPaymentTempViewModel`, `CanStatusView`, `CanStatusViewModel`, `CanCardView`, `MyPageView`, `MyPageViewModel`, `OrderListAllInnerView`.
|
||||
- 점검만 수행(실치환 없음): `CanCouponNoticeItemView.swift`, `CanUseStatusView.swift` (런타임 노출 하드코딩 없음, Preview/불릿/데이터 바인딩만 존재).
|
||||
- `MyPageView`의 `CategoryButtonItem`은 `LocalizedStringResource` → `String`으로 조정해 `I18n.*` 문자열 접근을 통일.
|
||||
- 반복 실패 문구는 `I18n.Common.commonError`로 통합했고, 본인인증 장문 오류는 `I18n.MyPage.Auth.verificationErrorWithSupport`로 분리.
|
||||
- Group 1~2 체크박스 20개 `- [x]` 반영 완료.
|
||||
- 대상 파일 재탐지 결과, 남은 한글 리터럴은 Preview 샘플/SDK 전달 상수(`payload.pg`, `payload.method`, `payload.orderName`, PG method rawValue)만 존재.
|
||||
- LSP 진단: SourceKit 단독 해석 환경에서 외부 모듈/프로젝트 심볼 미해결 오류(`Bootpay`, `Kingfisher`, `I18n` 등)가 보고되나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증 완료.
|
||||
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
|
||||
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 테스트 액션 미구성 확인(코드 실패 아님, 스킴 제약).
|
||||
|
||||
Reference in New Issue
Block a user