better-i18n REST API & SDK: 프로그래밍 방식의 번역 관리
깔끔하고 잘 문서화된 REST API를 통해 번역, 키, 언어, 프로젝트를 완전히 프로그래밍 방식으로 제어할 수 있습니다.
REST API & SDK: better-i18n 번역 관리 프로그래밍 인터페이스
better-i18n 플랫폼은 개발자에게 번역 관리에 대한 완전한 프로그래밍 접근 방식을 제공합니다 — TypeScript SDK, REST API, CLI 도구, 그리고 AI 어시스턴트를 위한 MCP 서버를 통해 사용할 수 있습니다. 자체 코드와 CI 파이프라인에서 키, 번역, 언어, 콘텐츠를 관리할 수 있습니다.
두 가지 API, 각기 다른 목적
better-i18n은 구축하는 내용에 따라 두 가지 별도의 API를 제공합니다:
| API | Base URL | Auth | 사용 사례 |
|---|---|---|---|
| Translation API | dash.better-i18n.com/api | Bearer token | 키 관리, 번역, 언어, sync |
| Content API | content.better-i18n.com | x-api-key 헤더 | Headless CMS — 블로그 포스트, 마케팅 페이지, 구조화된 콘텐츠 |
두 API 모두 JSON 요청/응답 본문을 사용하며 REST 관례를 따릅니다.
인증
대시보드의 Settings → API Keys에서 API 키를 생성할 수 있습니다.
# Translation API (키 관리, 번역)
curl -H "Authorization: Bearer bi18_live_abc123..." \
https://dash.better-i18n.com/api/...
# Content API (headless CMS)
curl -H "x-api-key: bi-your-api-key" \
https://content.better-i18n.com/v1/content/acme/web-app/models
API 키를 클라이언트 측 코드에 노출하지 마십시오. 환경 변수와 서버 측 프록시를 사용하십시오.
Translation API
Translation API는 핵심 i18n 워크플로우를 관리합니다: 프로젝트, 키, 번역, 언어.
프로젝트
listProjects() → 접근 가능한 모든 프로젝트 목록 조회
getProject(project) → 프로젝트 세부 정보, 언어, 네임스페이스 조회
모든 프로젝트는 org/project 형식(예: acme/web-app)으로 식별됩니다. i18n.config.ts에서 확인할 수 있습니다.
번역 키
listKeys(project, options) → 번역 키 검색 및 탐색
createKeys(project, keys) → 소스 텍스트와 번역을 포함한 키 생성
updateKeys(project, updates) → 기존 키의 번역 업데이트
deleteKeys(project, keys) → 번역 키 소프트 삭제
한 번의 호출로 번역과 함께 키를 생성합니다:
{
"project": "acme/web-app",
"keys": [
{
"name": "auth.login.title",
"namespace": "auth",
"sourceText": "Sign in to your account",
"translations": {
"tr": "Hesabınıza giriş yapın",
"de": "Melden Sie sich bei Ihrem Konto an"
}
},
{
"name": "auth.login.button",
"namespace": "auth",
"sourceText": "Sign in"
}
]
}
키 검색 및 필터링:
{
"project": "acme/web-app",
"search": "login",
"namespaces": ["auth"],
"missingLanguage": "tr"
}
상태와 함께 번역 업데이트:
{
"project": "acme/web-app",
"translations": [
{
"key": "auth.login.title",
"language": "tr",
"text": "Hesabınıza giriş yapın",
"status": "approved"
}
]
}
언어
addLanguage(project, language) → 새 대상 언어 추가
getProject(project) → 모든 활성 언어 및 진행 상황 확인
Sync 작업
getSyncs(project) → 최근 sync 작업 목록 조회 (GitHub, CDN 등)
getSync(project, id) → 특정 sync 작업의 세부 정보 조회
Content SDK
@better-i18n/sdk는 Content API용 TypeScript 클라이언트입니다 — 블로그 포스트, 변경 로그, 마케팅 페이지와 같은 구조화된 콘텐츠를 위한 헤드리스 CMS입니다.
설치
npm install @better-i18n/sdk
초기화
import { createClient } from "@better-i18n/sdk";
const client = createClient({
project: "acme/web-app",
apiKey: process.env.BETTER_I18N_API_KEY!,
});
쿼리 빌더 (Supabase 스타일)
SDK는 체이닝 가능한 불변 쿼리 빌더를 제공합니다:
// 게시된 블로그 포스트 목록 조회
const { data: posts, total, hasMore } = await client
.from("blog-posts")
.eq("status", "published")
.order("publishedAt", { ascending: false })
.expand("author", "category")
.limit(10);
// 프랑스어로 단일 항목 조회
const { data: post } = await client
.from("blog-posts")
.language("fr")
.single("getting-started");
console.log(post.title, post.body);
사용 가능한 메서드
| 메서드 | 설명 |
|---|---|
.eq(field, value) | 정확한 값으로 필터링 |
.search(term) | 제목에 대한 전체 텍스트 검색 |
.language(code) | 현지화된 콘텐츠의 언어 설정 |
.order(field, opts) | publishedAt, createdAt, updatedAt, title로 정렬 |
.limit(n) | 페이지당 항목 수 (1–100) |
.page(n) | 페이지 번호 |
.expand(...fields) | 관계 필드 인라인 확장 |
.select(...fields) | 반환할 필드 선택 |
.single(slug) | slug로 단일 항목 조회 |
REST 엔드포인트 (내부 동작)
SDK는 다음 엔드포인트를 호출합니다:
| 메서드 | 엔드포인트 |
|---|---|
GET | /v1/content/{org}/{project}/models |
GET | /v1/content/{org}/{project}/models/{model}/entries |
GET | /v1/content/{org}/{project}/models/{model}/entries/{slug} |
CLI 도구
@better-i18n/cli는 개발 워크플로우에 통합됩니다:
# 코드베이스에서 하드코딩된 문자열 감지
better-i18n scan
# 로컬 키와 클라우드 프로젝트 비교
better-i18n sync
# JSON 출력을 사용한 CI/CD 통합
better-i18n scan --ci --format json
better-i18n sync --format json
CLI는 useTranslations()와 getTranslations() 훅을 자동으로 감지하고, 네임스페이스를 추출하며, 누락된 번역을 보고합니다 — 일반적인 코드베이스의 경우 100ms 이내에 처리됩니다.
Pre-commit 및 CI 통합
# Pre-commit 훅
npx @better-i18n/cli scan --staged --ci
# GitHub Actions
- run: npx @better-i18n/cli scan --ci --format json
AI 어시스턴트를 위한 MCP 서버
better-i18n MCP(Model Context Protocol) 서버는 Claude, Cursor, Windsurf와 같은 AI 어시스턴트가 IDE에서 직접 번역을 관리할 수 있게 합니다:
# MCP 서버 설치
npm install @better-i18n/mcp
AI 어시스턴트는 다음을 수행할 수 있습니다:
- 번역 키 목록 조회 및 검색
- 번역과 함께 새 키 생성
- 기존 번역 업데이트
- Sync 상태 확인
- 새 언어 추가
즉, *"auth 네임스페이스에 독일어 번역을 추가해 주세요"*라고 말하면 AI 어시스턴트가 API를 통해 처리합니다.
CDN 전송
번역은 예측 가능한 URL 패턴으로 CDN을 통해 전 세계에 제공됩니다:
https://cdn.better-i18n.com/{org}/{project}/{locale}/{namespace}.json
예시:
https://cdn.better-i18n.com/acme/web-app/de/common.json
배포가 필요하지 않습니다 — 번역은 게시 시 CDN에서 자동으로 업데이트됩니다.
플랫폼 SDK
| 패키지 | 목적 |
|---|---|
@better-i18n/sdk | Content API 클라이언트 (TypeScript) |
@better-i18n/cli | 코드 스캔 및 sync (CLI) |
@better-i18n/next | Next.js 런타임 통합 |
@better-i18n/use-intl | React 번역 훅 |
@better-i18n/mcp | AI 어시스턴트용 MCP 서버 |
모든 패키지는 npm에서 사용할 수 있으며 네이티브 fetch()를 지원하는 모든 JavaScript 런타임에서 작동합니다.