fix(i18n): 후원 탭 빈 상태를 다국어화한다

This commit is contained in:
Yu Sung
2026-08-14 18:40:18 +09:00
parent 4b209dcd72
commit d002920567
4 changed files with 60 additions and 4 deletions

View File

@@ -14,6 +14,7 @@ Figma 참조:
- 현재 `CreatorChannelTab.donation`은 placeholder로 표시되어 실제 후원 랭킹과 후원 내역을 확인할 수 없다.
- 기존 홈 탭에는 채널 후원 요약 섹션과 후원하기 액션이 있지만, 후원 탭 전용 API, 랭킹 섹션, 스크롤 페이징이 없다.
- 후원 후 홈 탭 후원 섹션은 갱신되지만, 후원 탭이 구현되면 후원 탭 목록도 함께 갱신되어야 한다.
- 후원 탭 empty 문구와 `후원하기` 버튼이 한국어로 하드코딩되어 앱 언어 설정에 맞게 표시되지 않는다.
## 3. Goals
- `CreatorChannelTab.donation` 선택 시 후원 탭 API를 호출하고 응답 데이터로 화면을 구성한다.
@@ -142,8 +143,12 @@ data class CreatorChannelDonationResponse(
### 5.7 Empty and floating donation button
- `rankings.isEmpty && donationCount == 0`이면 Figma `290:9009` 기준의 empty view를 표시한다.
- Empty 문구는 `아직 후원이 없습니다.\n처음으로 크리에이터를 후원해 보세요!`를 표시한다.
- Empty view에는 `ic_new_donation` 아이콘과 `후원하기` 텍스트가 있는 `Color.soda400` capsule button을 표시한다.
- Empty 문구는 아래 언어별 값을 사용한다. `\n`은 명시적 줄바꿈이다.
- 한국어: `아직 후원이 없습니다.\n처음으로 크리에이터를 후원해 보세요!`
- 영어: `No support yet.\nBe the first to support this creator!`
- 일본어: `まだサポートがありません。\n最初のサポートをしてみましょう`
- Empty view에는 `ic_new_donation` 아이콘과 기존 `I18n.ContentDetail.DonationDialog.title` 텍스트가 있는 `Color.soda400` capsule button을 표시하고, 아이콘과 텍스트는 white를 사용한다.
- `후원하기`용 신규 I18n 키를 만들지 않는다.
- 단, 내 채널인 경우 Empty view 내부 후원하기 버튼을 표시하지 않는다.
- Empty view의 후원하기 버튼 tap은 홈 탭 후원하기 버튼 tap action과 동일하게 동작한다.
- Empty 상태에서는 하단 고정 후원하기 버튼을 표시하지 않는다.
@@ -159,6 +164,7 @@ data class CreatorChannelDonationResponse(
- `donations` 목록은 기존 홈 탭 후원 카드와 같은 후원 금액별 상단 컬러, can pill, 상대 시간, 메시지 표시 규칙을 따른다.
- 목록 하단 도달 시 `hasNext == true`이면 다음 페이지가 append된다.
- `rankings.isEmpty && donationCount == 0`이면 Figma `290:9009` empty view가 표시되고, 하단 고정 후원하기 버튼은 숨겨진다.
- Empty 문구가 지정된 ko/en/ja 값과 줄바꿈으로 표시되고, 버튼 문구는 기존 `I18n.ContentDetail.DonationDialog.title`을 사용한다.
- 내 채널인 경우 Empty view의 후원하기 버튼과 우측하단 icon-only 후원하기 버튼이 모두 표시되지 않는다.
- Empty view의 후원하기 버튼을 누르면 홈 탭과 동일한 후원 dialog가 열린다.
- `donationCount != 0 || !rankings.isEmpty`이면 홈 탭 plus button 위치에 `ic_new_donation` icon-only 후원하기 버튼이 표시된다.
@@ -172,6 +178,7 @@ data class CreatorChannelDonationResponse(
- `CreatorChannelDonationResponse``Home/Models/CreatorChannelHomeResponse.swift`의 기존 타입을 재사용한다.
- 후원 item UI는 기존 홈 탭 구현과 중복을 줄이기 위해 공용 컴포넌트로 추출하거나, 홈/후원 탭 양쪽에서 같은 하위 컴포넌트를 사용하도록 최소 범위로 조정한다.
- 신규 문구가 필요하면 `SodaLive/Sources/I18n/I18n.swift`에 ko/en/ja를 추가한다.
- Empty 문구는 `pick(ko:en:ja:)`로 관리하고, 후원 버튼은 기존 `I18n.ContentDetail.DonationDialog.title`을 재사용한다. 신규 후원 버튼 문구, route, API, dependency는 추가하지 않는다.
- 프로젝트 설정 변경은 신규 Swift 파일 target 등록이 필요한 경우에만 수행한다.
## 8. Open Questions
@@ -182,3 +189,4 @@ data class CreatorChannelDonationResponse(
- 2026-07-04: `CreatorChannelView`, `CreatorChannelDonationSection`, `CreatorChannelSortBar`, `ChannelDonationViewModel`, 기존 후원 전체 화면 코드를 확인해 재사용 경계를 정했다.
- 2026-07-04: Figma `get_design_context``get_screenshot`으로 empty view `290:9009`를 확인했다.
- 2026-07-04: `UserProfileDonationAllView``AppStep.userProfileDonationAll(userId:)` 기존 라우팅을 확인해 랭킹 전체보기 재사용 경계를 정했다.
- 2026-08-14: 사용자 인터뷰로 후원 탭 empty 문구의 ko/en/ja 값을 확정했다. `후원하기`는 기존 `I18n.ContentDetail.DonationDialog.title`을 재사용하며 이번 작업에서는 Swift 구현을 수행하지 않는다.