Skip to content

feat(blog): sprint-157 [P9] — ADR UI i18n (KR/EN) — 사용자 지적 즉시 보강#255

Merged
tpals0409 merged 1 commit into
mainfrom
feat/sprint-157-adr-i18n
May 18, 2026
Merged

feat(blog): sprint-157 [P9] — ADR UI i18n (KR/EN) — 사용자 지적 즉시 보강#255
tpals0409 merged 1 commit into
mainfrom
feat/sprint-157-adr-i18n

Conversation

@tpals0409

Copy link
Copy Markdown
Owner

Summary

  • 사용자 지적: ADR 사이트가 KR/EN 양면 지원 안 됨 (Sprint 152 시드 chore(deps): Bump prometheus-client from 0.21.0 to 0.24.1 in /services/ai-analysis #19 누락 재현)
  • UI i18n 즉시 보강 (옵션 A) — 콘텐츠 영문판(md 105개)은 별도 sprint 이월
  • lib/i18n.ts ADR 사전 키 ~50개 추가 + tf() placeholder helper 신규
  • /en/adr/* 6 라우팅 신규 (한국어 경로 유지 + 영문 미러)
  • 12개 ADR 컴포넌트 locale prop 전파 + t(locale, key) 적용
  • 영문 페이지 본문 상단 KoreanOnlyBanner (callout-info) + View Korean version ↗ 링크
  • LocaleToggle (adr)/layout 헤더 통합 (/adr//en/adr/)

Test plan

  • npx tsc --noEmit 0 에러
  • npm run build exit 0, 239 정적 페이지 (KR ADR 119 + EN ADR 119 + 블로그 23, 기존 132 → 239)
  • check-adr-links.mjs blog/out/adr 1109 links, 0 broken
  • check-adr-links.mjs blog/out/en/adr 1213 links, 0 broken
  • check-doc-refs.mjs --include-untracked 171 files, 0 broken refs
  • 브라우저 시각 검증: /en/adr/ 인덱스 + /en/adr/sprints/156/ 상세 — 헤더/메타사이드바/뱃지/TOC 라벨 모두 영문화, KoreanOnlyBanner 정상 표시
  • Locale toggle KO/EN 양방향 정상 동작

검증된 패턴

  • 검색 인덱스 단일 호스팅: /adr/search-index.json 만 생성, 클라이언트가 locale에 따라 URL prefix만 재작성
  • 영문판 본문은 한국어 그대로 + 배너 명시 → 콘텐츠 영문판 작성 부담 0
  • LocaleToggle 재사용: 기존 usePathname 기반 토글이 /adr/.../en/adr/... 변환에도 그대로 작동

🤖 Generated with Claude Code

기존 (adr) 라우팅 한국어 전용 → KR/EN 양면 보유 정책 준수.
- lib/i18n.ts: ADR 전용 사전 키 ~50개 추가 + tf() placeholder helper
- (adr)/en/adr/* 6 라우팅 신규 (한국어 경로 유지 + 영문 미러)
- 12+ ADR 컴포넌트 locale prop 전파 + t() 적용
- 영문 페이지 본문 상단 'Content in Korean' 배너 + 원문 링크
- buildUrl() locale prefix 지원 (옵셔널 + 기본값 'ko')
- AdrHeader 신규 — pathname 기반 locale 판별 + LocaleToggle 통합
- AdrGraphView 신규 — KR/EN 그래프 페이지 공유 뷰
- check-adr-links.mjs: /en/adr/ 경로 검사 + outRoot 추론 + EN search-index skip

콘텐츠 영문판(md 105개)은 별도 sprint 이월.
Sprint 152 시드 #19 KR/EN 양면 plan 의무 본 sprint 즉시 적용.

검증:
- npx tsc --noEmit: 0 에러
- npm run build: 239 페이지 생성 (KR/EN 각 119개)
- check-adr-links.mjs blog/out/adr: 1109 links, 0 broken
- check-adr-links.mjs blog/out/en/adr: 1213 links, 0 broken
- check-doc-refs.mjs --include-untracked: 171 files, 0 broken refs
@tpals0409 tpals0409 enabled auto-merge (squash) May 18, 2026 13:04
@github-actions

Copy link
Copy Markdown

Coverage Report

Coverage directory not found at /home/runner/work/AlgoSu/AlgoSu/coverage — no services changed, skipping coverage gate.

@tpals0409 tpals0409 merged commit be1d8fe into main May 18, 2026
36 of 37 checks passed
@tpals0409 tpals0409 deleted the feat/sprint-157-adr-i18n branch May 18, 2026 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant