better-i18n REST API & SDK: プログラムによる翻訳管理
クリーンでドキュメントが充実したREST APIを通じて、翻訳、キー、言語、プロジェクトをプログラムで完全にコントロールできます。
better-i18n REST API & SDK: プログラムによる翻訳管理
better-i18nプラットフォームは、TypeScript SDK、REST API、CLIツール、そしてAIアシスタント向けのMCPサーバーを通じて、翻訳管理へのフルプログラムアクセスを開発者に提供します。自分のコードやCI Pipelineから、キー、翻訳、言語、コンテンツを管理できます。
2つのAPI、それぞれの目的
better-i18nは、構築するものに応じて2つの異なるAPIを公開しています。
| API | ベースURL | 認証 | ユースケース |
|---|---|---|---|
| Translation API | dash.better-i18n.com/api | Bearer token | キー管理、翻訳、言語、Sync |
| Content API | content.better-i18n.com | x-api-key ヘッダー | ヘッドレスCMS — ブログ記事、マーケティングページ、構造化コンテンツ |
両APIはJSON形式のリクエスト/レスポンスボディを使用し、RESTの規約に従います。
認証
Dashboardの Settings → API Keys でAPIキーを生成してください。
# Translation API(キー管理、翻訳)
curl -H "Authorization: Bearer bi18_live_abc123..." \
https://dash.better-i18n.com/api/...
# Content API(ヘッドレス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) → 翻訳キーをソフトデリート
1回の呼び出しで翻訳付きキーを作成:
{
"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) | スラッグで単一エントリを取得 |
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以内に完了します。
プリコミット・CI連携
# プリコミットフック
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
Deployは不要です。翻訳は公開されると自動的に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ランタイムで動作します。
関連リソース
- Git連携 — プルリクエスト経由でリポジトリと翻訳をSync
- Webhook & イベント — 翻訳イベントのリアルタイム通知
- 完全なAPIドキュメント — エンドポイントの完全なリファレンス