機能

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 APIdash.better-i18n.com/apiBearer tokenキー管理、翻訳、言語、Sync
Content APIcontent.better-i18n.comx-api-key ヘッダーヘッドレスCMS — ブログ記事、マーケティングページ、構造化コンテンツ

両APIはJSON形式のリクエスト/レスポンスボディを使用し、RESTの規約に従います。

認証

DashboardSettings → 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)publishedAtcreatedAtupdatedAt、または 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/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

1回の操作で数千件の翻訳を更新・公開・管理できます。better-i18n の Batch ツールは、エンタープライズ規模のボリュームも難なく処理します。

Developer Experience & Platform UX — better-i18nでスピードと喜びのために構築

すべてのインタラクションが意図的に設計されたDeveloper Experience — Command Paletteナビゲーション、Inline Editing、Auto-Sync、そしてすべてのワークフローに組み込まれたAI支援。

better-i18n メディア管理:ローカライズプロジェクト向けコンテンツアセット

翻訳と並行してメディアアセットをアップロード、整理、配信できます — プロフィール写真からコンテンツ画像まで、すべて超高速R2エッジストレージに保存されます。

better-i18n 翻訳チームのためのエンタープライズセキュリティ&コンプライアンス

エンタープライズグレードの認証、暗号化、コンプライアンス — コードから本番環境まで翻訳ワークフローを保護します。