kdyi18n — i18n 키 동기화/검증 스킬
트리거:
/kdyi18n, "i18n 검증", "번역 동기화", "다국어 키"
목적
다국어 프로젝트의 i18n 키 누락/불일치를 자동 탐지하고, 기준 언어 대비 미번역 키를 보고하는 스킬. 15개 프로젝트 분석에서 5개 프로젝트가 4개 언어(ko/en/ja/zh) 수동 관리를 반복 병목으로 보고.
지원 프레임워크
| 프레임워크 | 파일 패턴 | 키 구조 |
|---|---|---|
| next-intl | messages/{locale}.json | flat/nested JSON |
| react-i18next | public/locales/{locale}/*.json | namespace 기반 |
| vue-i18n | src/locales/{locale}.json | nested JSON |
| 커스텀 | **/i18n/**/*.json, **/locales/** | 자동 감지 |
실행 흐름
Phase 1: 탐색
- 프로젝트에서 i18n 설정 파일 감지 (
next-intl,i18next.config,vue.config) - 로케일 디렉토리/파일 자동 탐색
- 기준 언어(primary locale) 식별 (보통
ko또는en)
Phase 2: 키 분석
- 기준 언어의 모든 키 추출 (nested → flat path 변환)
- 각 타겟 언어와 키 비교:
- ✅ 일치 (키 존재 + 값 존재)
- ⚠️ 미번역 (키 존재 + 값이 기준 언어와 동일)
- ❌ 누락 (키 자체 없음)
- 🔄 잉여 (타겟에만 존재, 기준에 없음)
Phase 3: 보고
## i18n 검증 보고서
### 기준 언어: ko (245개 키)
### 타겟 언어: en, ja, zh
| 언어 | 총 키 | ✅ 완료 | ⚠️ 미번역 | ❌ 누락 | 🔄 잉여 | 커버리지 |
|------|-------|--------|----------|--------|--------|---------|
| en | 243 | 230 | 5 | 2 | 0 | 93.9% |
| ja | 240 | 220 | 15 | 5 | 0 | 89.8% |
| zh | 238 | 218 | 13 | 7 | 0 | 89.0% |
### ❌ 누락 키 상세
- `en`: `dashboard.settings.notifications`, `admin.bulk.confirm`
- `ja`: `dashboard.settings.notifications`, `admin.bulk.confirm`, ...
Phase 4: 자동 수정 (선택)
- 누락 키 → 기준 언어 값으로 플레이스홀더 삽입 (접두사
[TODO]추가) - 잉여 키 → 삭제 제안
- JSON 키 정렬 통일 (알파벳순)
모드
/kdyi18n— 전체 검증 보고서/kdyi18n fix— 누락 키 자동 플레이스홀더 삽입/kdyi18n sort— 모든 로케일 파일 키 정렬 통일/kdyi18n diff {locale}— 특정 언어 상세 비교
Superpowers 연계
이 스킬 실행 중 아래 superpowers 원칙을 적용한다.
| 원칙 | 적용 시점 | 적용 방법 |
|---|---|---|
verification-before-completion | 키 동기화 후 | 재스캔으로 누락 키 0건 확인 |
주의사항
- 자동 번역은 수행하지 않음 (플레이스홀더만 삽입)
- ICU MessageFormat (
{count, plural, ...}) 구조 보존 - namespace 기반 프레임워크에서는 각 namespace 파일별로 분석