feat(i18n): 음성 메시지 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-03-31 22:21:41 +09:00
parent 9369a52ba2
commit 25fccbaa07
5 changed files with 135 additions and 42 deletions

View File

@@ -405,9 +405,9 @@
- [x] `SodaLive/Sources/Message/Voice/VoiceMessageItemView.swift`
#### Group 2 (11-13)
- [ ] `SodaLive/Sources/Message/Voice/VoiceMessageView.swift`
- [ ] `SodaLive/Sources/Message/Voice/VoiceMessageViewModel.swift`
- [ ] `SodaLive/Sources/Message/Voice/Write/VoiceMessageWriteView.swift`
- [x] `SodaLive/Sources/Message/Voice/VoiceMessageView.swift`
- [x] `SodaLive/Sources/Message/Voice/VoiceMessageViewModel.swift`
- [x] `SodaLive/Sources/Message/Voice/Write/VoiceMessageWriteView.swift`
### MyPage (41)
#### Group 1 (1-10)
@@ -775,3 +775,30 @@
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 테스트 액션 미구성 확인(코드 실패 아님, 스킴 제약).
- LSP 진단: SourceKit 단독 해석 환경에서 외부 모듈/프로젝트 심볼 미해결 오류(`Kingfisher`, `MessageRepository` 등)가 보고되나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증 완료.
### 14차 구현 (Message 모듈 Group 2, 3개 파일 처리, 2026-03-31)
- 무엇/왜/어떻게:
- 무엇: `변경 대상 파일 전체 목록``Message` Group 2(3개 파일)에서 사용자 노출 하드코딩 문구를 `I18n.*` 참조로 전환하고 체크박스를 완료 처리.
- 왜: Voice 메시지 목록/보관 팝업/작성 화면/ViewModel 토스트 문구가 하드코딩 상태라 Message 모듈의 i18n 접근이 Group 1과 불일치했기 때문.
- 어떻게: explore/librarian 병렬 탐색 + `grep`/`ast_grep_search`/`rg` 직접 점검으로 대상 문자열을 확정하고, `I18n.swift``I18n.Message.Voice` 네임스페이스를 확장한 뒤 호출부를 치환.
- 실행 명령/도구:
- `task(subagent_type="explore", ...)` x2 (`bg_4384335d`, `bg_fe76ec47`)
- `task(subagent_type="librarian", ...)` x2 (`bg_da2d810f`, `bg_2416c47e`)
- `grep("\"[^\"]*[가-힣][^\"]*\"", include=*.swift, path=SodaLive/Sources/Message/Voice)`
- `grep("I18n\\.Message\\.", include=*.swift, path=SodaLive/Sources/Message)`
- `ast_grep_search(pattern="Text(\"$TEXT\")", lang=swift, paths=[SodaLive/Sources/Message/Voice])`
- `bash: rg -n ...` (`command not found` 확인)
- `lsp_diagnostics(filePath=변경 파일 4개)`
- `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.Message.Voice.SavePopup`, `I18n.Message.Voice.Write`, `I18n.Message.Voice.Toast` 키셋 추가.
- 치환 완료 파일: `VoiceMessageView.swift`, `VoiceMessageViewModel.swift`, `VoiceMessageWriteView.swift`.
- Voice 보관 팝업(제목/본문/안내/버튼), 작성 화면(타이틀/수신자 라벨/다시 녹음/삭제), ViewModel 토스트/성공·실패 문구를 `I18n.*` 참조로 교체.
- 대상 3개 파일 재탐지 결과 한글 하드코딩 리터럴 0건 확인.
- `Message` Group 2 체크박스 3개 `- [x]` 완료 반영.
- 빌드 검증: `SodaLive`, `SodaLive-dev` Debug 빌드 모두 성공(`** BUILD SUCCEEDED **`).
- 테스트 검증: 두 스킴 모두 `Scheme ... is not currently configured for the test action.`로 테스트 액션 미구성 확인(코드 실패 아님, 스킴 제약).
- LSP 진단: SourceKit 단독 해석 환경에서 외부 모듈/프로젝트 심볼 미해결 오류(`Moya`, `I18n`, `LoadingView` 등)가 보고되나, 동일 변경셋은 `xcodebuild` 실컴파일 통과로 검증 완료.