feat(i18n): 탐색 프로필 하드코딩 문구를 I18n 키로 통일한다
This commit is contained in:
@@ -249,52 +249,52 @@
|
||||
|
||||
### Explorer (40)
|
||||
#### Group 1 (1-10)
|
||||
- [ ] `SodaLive/Sources/Explorer/ExplorerSectionView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/ExplorerView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/ExplorerViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/ChannelDonation/ChannelDonationAllView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/ChannelDonation/ChannelDonationItemView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentItemView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentListView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentListViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentReplyView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentReplyViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/ExplorerSectionView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/ExplorerView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/ExplorerViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/ChannelDonation/ChannelDonationAllView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/ChannelDonation/ChannelDonationItemView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentItemView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentListView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentListViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentReplyView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentReplyViewModel.swift`
|
||||
|
||||
#### Group 2 (11-20)
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityAllItemLockView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityAllView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityAllViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityMenuView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Player/CreatorCommunityMediaPlayerManager.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/CreatorCommunityItemView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/CreatorCommunityMoreItemView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/CreatorCommunityNoPostsItemView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Modify/CreatorCommunityModifyView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Comment/CreatorCommunityCommentView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityAllItemLockView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityAllView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityAllViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/CreatorCommunityMenuView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/All/Player/CreatorCommunityMediaPlayerManager.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/CreatorCommunityItemView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/CreatorCommunityMoreItemView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/CreatorCommunityNoPostsItemView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Modify/CreatorCommunityModifyView.swift`
|
||||
|
||||
#### Group 3 (21-30)
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Modify/CreatorCommunityModifyViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunityRecordingVoiceView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunitySoundManager.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunityWriteView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunityWriteViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkAllView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkCheersItemView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/FollowerList/FollowerListView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Modify/CreatorCommunityModifyViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunityRecordingVoiceView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunitySoundManager.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunityWriteView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/CreatorCommunity/Write/CreatorCommunityWriteViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkAllView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkCheersItemView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/FanTalk/UserProfileFanTalkViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/FollowerList/FollowerListView.swift`
|
||||
|
||||
#### Group 4 (31-40)
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/Series/UserProfileSeriesView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileActivitySummaryView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileContentView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileDonationAllView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileDonationAllViewModel.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileDonationView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileIntroduceView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileLiveView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileView.swift`
|
||||
- [ ] `SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/Series/UserProfileSeriesView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileActivitySummaryView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileContentView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileDonationAllView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileDonationAllViewModel.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileDonationView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileIntroduceView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileLiveView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileView.swift`
|
||||
- [x] `SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift`
|
||||
|
||||
### Follow (1)
|
||||
- [x] `SodaLive/Sources/Follow/FollowCreatorView.swift`
|
||||
@@ -951,3 +951,27 @@
|
||||
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 오류 없이 완료(경고만 존재).
|
||||
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 test action 미구성 확인(코드 실패 아님, 스킴 제약).
|
||||
- LSP 진단 참고: 단일 파일 진단 시 `No such module 'Moya'`가 보고되나, SourceKit 단독 해석 한계이며 실제 `xcodebuild` 컴파일은 통과했다.
|
||||
|
||||
### 20차 구현 (Explorer 모듈 Group 1~4, 40개 파일 처리, 2026-04-01)
|
||||
- 무엇/왜/어떻게:
|
||||
- 무엇: `변경 대상 파일 전체 목록`의 `Explorer` Group 1~4(40개 파일)를 전수 점검하고, 런타임 사용자 노출 하드코딩 문구를 `I18n.*`로 치환했다.
|
||||
- 왜: Explorer(탐색/프로필/팬톡/크리에이터 커뮤니티) 구간에서 하드코딩 문구와 직접 로컬라이제이션 API(`String(localized:)`)가 혼재되어 `I18n.swift` 단일 접근 원칙과 충돌했기 때문이다.
|
||||
- 어떻게: Explorer 대상 파일을 선별해 하드코딩/직접 API 사용을 재탐지하고, `I18n.swift`에 `I18n.Explorer` 네임스페이스를 추가한 뒤 호출부를 치환했다. 공통 문구는 `I18n.Common`으로 통합 재사용했다.
|
||||
- 실행 명령/도구:
|
||||
- `lsp_diagnostics(filePath=SodaLive/Sources/Explorer, extension=.swift, severity=all)`
|
||||
- `lsp_diagnostics(filePath=SodaLive/Sources/I18n/I18n.swift, severity=all)`
|
||||
- `grep("String\\(localized:|NSLocalizedString\\(|LocalizedStringKey\\(", include=*.swift, path=SodaLive/Sources/Explorer)`
|
||||
- `grep("\"[^\"]*[가-힣][^\"]*\"", include=*.swift, path=SodaLive/Sources/Explorer)`
|
||||
- `git diff --name-only -- "SodaLive/Sources/Explorer"`
|
||||
- `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`
|
||||
- 결과:
|
||||
- Explorer Group 1~4 체크박스 40개 `- [x]` 완료 상태를 유지/확인했다.
|
||||
- 실치환 파일은 총 37개였고, 나머지 3개(`ChannelDonationAllView.swift` 등)는 런타임 사용자 노출 하드코딩이 없어 점검만 수행했다.
|
||||
- `String(localized:)`/`NSLocalizedString`/`LocalizedStringKey`의 Explorer 직접 사용은 0건으로 확인했다.
|
||||
- Explorer 잔여 한글 리터럴은 Preview 샘플 데이터 및 `DEBUG_LOG` 메시지(비사용자 노출)만 존재함을 재확인했다.
|
||||
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
|
||||
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 test action 미구성 확인(코드 실패 아님, 스킴 제약).
|
||||
- LSP 진단 참고: SourceKit 단독 해석에서 외부 모듈/프로젝트 심볼(`Moya`, `Kingfisher`, `I18n` 등) 미해결 오류가 보고되었으나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증했다.
|
||||
|
||||
Reference in New Issue
Block a user