| 항목 | next-intl | i18next | Lokalise | Crowdin |
|---|---|---|---|---|
| 역할 | Next.js 전용 다국어 렌더링 | 범용 i18n 라이브러리 (React, Vue 등 호환) | 번역 협업/관리 플랫폼 | 번역 협업/관리 플랫폼 |
| 형태 | 라이브러리 | 라이브러리 | SaaS 플랫폼 | SaaS 플랫폼 |
| Next.js 적합성 | ✅ 최적화됨 (app router 완전 대응) | ❌ 직접 설정 필요 / 예전 방식 위주 | ◯ JSON 변환으로 연동 | ◯ JSON 변환으로 연동 |
| 타입 지원 | ✅ TypeScript 완전 대응 (제네릭 기반) | ◯ 약한 편 | - | - |
| ICU 메시지 포맷 지원 | ✅ | ◯ (추가 패키지 필요) | ◯ | ◯ |
| 번역 관리 UI | ❌ 없음 | ❌ 없음 | ✅ 웹 UI + 워크플로 | ✅ 웹 UI + 번역가 마켓 포함 |
| 협업 번역 | ❌ 수동 처리 | ❌ 수동 처리 | ✅ 번역가, 리뷰어 초대 가능 | ✅ AI 보조 번역, 맥락 제공 |
| 자동화 (CI/CD) | ◯ JSON 수동 배포 | ◯ JSON 수동 배포 | ✅ GitHub, CLI, Figma 연동 | ✅ GitHub, CLI, Notion 연동 |
| 무료 사용 가능 여부 | ✅ | ✅ | ◯ 500 keys까지 무료 | ◯ OSS나 소규모에 무료 티어 |
| 상황 | 추천 조합 |
|---|---|
| 개인/스타트업 + 빠른 개발 | next-intl + 수동 JSON 관리 |
| 기존에 i18next를 써본 적 있다면 | i18next + next-i18next 플러그인 활용 |
| 번역가와 협업, 자동화 필요 | next-intl + Lokalise or Crowdin |
| 오픈소스 프로젝트 운영 | next-intl + Crowdin (무료 티어 제공) |
| 번역 프로세스까지 전부 관리하고 싶을 때 | i18next + Lokalise or Crowdin |
📁 app/
└─ [locale]/
└─ page.tsx ← Next.js 다국어 라우팅
📁 messages/
└─ en.json ← 번역 사전 (next-intl 또는 i18next 용)
└─ ko.json
📁 tools/
└─ i18n.ts ← next-intl 또는 i18next 초기화
next-intl vs i18next
next-intl은 Next.js 앱 전용
i18next는 범용이지만 설정 복잡
Lokalise vs Crowdin
비슷하지만, Lokalise는 워크플로 자동화 강점 / Crowdin은 AI 번역·시장 연결 강점
함께 쓰는 구조는
next-intl or i18next로 앱 구성 + Lokalise/Crowdin으로 번역 관리 자동화