feat: add internationalization message platform

This commit is contained in:
donghyeon-ka
2026-07-26 16:17:39 +09:00
parent b8c0444217
commit 668bf05b48
57 changed files with 1711 additions and 201 deletions
@@ -651,6 +651,26 @@ token rename은 alias/migration 기간을 두고, vendor adapter와 local API co
RP-08은 기존 기본 언어 catalog를 fallback으로 유지한다. 번역 catalog를
파괴적으로 덮어쓰지 않는다.
**구현 증거 (2026-07-26)**
- VD-06에서 dependency를 추가하지 않는 browser `Intl` + typed local catalog를
채택하고 vendor 재평가 조건, fallback과 key migration 정책을 문서화했다.
- `src/presentation/i18n`이 137개 common key, key별 interpolation,
`ko-KR` fallback, compatibility alias, date/number/relative/list/plural/select
formatter와 `LocaleProvider`를 제공한다.
- shell, route lifecycle/access/recovery, async/form error, page template와
design-system default copy가 catalog consumer로 연결됐다.
- feature route copy는 feature-owned catalog contribution으로 분리되어 reference
feature 제거 시 source와 built artifact에 전용 message key가 남지 않는다.
- reference application mapper는 locale-formatted date 대신 timestamp를
반환하고 presentation formatter가 UTC 또는 명시 timezone을 적용한다.
- `check:i18n`과 type negative fixture가 catalog/placeholder 불일치,
hardcoded common literal, backend raw message render, unsafe HTML,
unknown key와 interpolation mismatch를 거절한다.
- unit/component/browser test가 safe fallback, pseudo 320px reflow,
document `lang/dir`, RTL Drawer/Tabs/directional icon과 deterministic formatter를
검증한다.
### 09. `feature-frontend-diagnostics-telemetry-runtime`
**목표**