기능

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를 제공합니다:

APIBase URLAuth사용 사례
Translation APIdash.better-i18n.com/apiBearer token키 관리, 번역, 언어, sync
Content APIcontent.better-i18n.comx-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/sdkContent API 클라이언트 (TypeScript)
@better-i18n/cli코드 스캔 및 sync (CLI)
@better-i18n/nextNext.js 런타임 통합
@better-i18n/use-intlReact 번역 훅
@better-i18n/mcpAI 어시스턴트용 MCP 서버

모든 패키지는 npm에서 사용할 수 있으며 네이티브 fetch()를 지원하는 모든 JavaScript 런타임에서 작동합니다.

관련 리소스

더 보기

Translation Sync Engine — better-i18n 로컬라이제이션 파이프라인을 위한 신뢰할 수 있는 비동기 처리

소스 코드, 번역, CDN을 완벽하게 동기화 상태로 유지하는 신뢰할 수 있는 비동기 번역 파이프라인 — 충돌 감지, Activity Logging, 제로 데이터 손실을 갖추고 있습니다.

better-i18n Doctor: 자동화된 번역 품질 모니터링

코드베이스에서 누락된 번역, 오판 키, 플레이스홀더 불일치를 스캔합니다. 커밋마다 0~100의 헬스 스코어를 받으십시오.

엔터프라이즈 규모의 번역 관리를 위한 better-i18n Batch Operations

단일 작업으로 수천 개의 번역을 업데이트, 게시, 관리합니다. better-i18n Batch 도구는 엔터프라이즈 볼륨을 손쉽게 처리합니다.

Developer Experience & Platform UX — better-i18n: 속도를 위해 구축하고 즐거움을 위해 설계

모든 인터랙션이 의도적으로 설계된 developer experience — Command Palette 탐색, Inline Editing, Auto-Sync, 그리고 모든 워크플로우에 내장된 AI 지원.

better-i18n 미디어 관리: 로컬라이제이션 프로젝트를 위한 콘텐츠 에셋

번역과 함께 미디어 에셋을 업로드, 정리, 제공합니다 — 프로필 사진부터 콘텐츠 이미지까지, 모두 초고속 R2 엣지 스토리지 리포지토리에 저장됩니다.

better-i18n 번역 팀을 위한 엔터프라이즈 보안 및 컴플라이언스

엔터프라이즈급 인증, 암호화, 컴플라이언스 — 코드에서 프로덕션까지 번역 워크플로우를 보호합니다.