エンタープライズ向け better-i18n:ローカライゼーション基盤をスケールさせよう
製品を複数の言語で展開する場合、ローカライゼーションは一度きりのプロジェクトではなく、インフラそのものになります。プログラマティックなアクセス、CI/CD統合、用語の一貫性の強制、翻訳済み・保留中・未翻訳の状況を可視化する仕組みが必要です。
better-i18nは、エンジニアリングチームのために設計されたAPIファーストの翻訳管理プラットフォームです。REST API、Content SDK、CLIツール、MCPサーバー、CDN配信、GitHub連携といった構成要素を提供し、ローカライゼーションを開発ワークフローにシームレスに組み込みます。
エンタープライズチームが実際に得られるもの
APIファーストアーキテクチャ
better-i18nのすべての機能はREST APIで利用できます。社内ツール、CIパイプライン、カスタムワークフローからプラットフォームをプログラマティックに操作できます:
翻訳管理 API (dash.better-i18n.com/api):
| 操作 | 内容 |
|---|---|
| listKeys | 検索、名前空間、ステータスフィルターで翻訳キーを照会 |
| createKeys | ソーステキストと初期翻訳を含むキーを作成 |
| updateKeys | 既存キーの翻訳を複数言語にわたって更新 |
| deleteKeys | 使用されなくなったキーをソフトデリート |
| listProjects | 組織内のすべてのプロジェクトを一覧表示 |
| getProject | 言語や名前空間を含むプロジェクト詳細を取得 |
Content SDK (@better-i18n/sdk):
ローカライズされたコンテンツエントリを取得するための、Supabaseスタイルのクエリビルダーです:
import { createClient } from "@better-i18n/sdk";
const client = createClient({
project: "your-org/your-project",
apiKey: process.env.BETTER_I18N_CONTENT_API_KEY,
});
// フランス語で公開済みのブログ記事を取得
const { data, total, hasMore } = await client
.from("blog-posts")
.eq("status", "published")
.language("fr")
.order("publishedAt", { ascending: false })
.limit(20);
SDKは依存関係ゼロ、TypeScriptで完全に型付けされており、あらゆるJavaScriptランタイムで動作します。
CDN配信
翻訳はCloudflareのエッジネットワークから以下のURLで配信されます:
https://cdn.better-i18n.com/{org}/{project}/{locale}/{namespace}.json
世界中で100ミリ秒未満の配信速度。ダッシュボードまたはAPIで翻訳を更新すれば、アプリケーションを再デプロイすることなくCDNに即座に反映されます。
GitHub連携
better-i18nはリポジトリと同期します:
- Webhookトリガー同期 — プッシュイベントが翻訳ファイルの更新をトリガー
- プルリクエストワークフロー — 翻訳更新をコントロール可能なPRとしてプッシュ
- 最小権限 — 設定された翻訳ファイルパターン(例:
locales/**/*.json)への読み書きのみ - 完全なマージ制御 — 翻訳をコードベースに反映するタイミングはあなたが決定
開発者ワークフローのためのCLI
@better-i18n/cliが開発プロセスに統合されます:
# React/Next.jsコード内のハードコードされた文字列を検出
npx @better-i18n/cli scan --ci
# ローカルの翻訳キーとクラウドプロジェクトを比較
npx @better-i18n/cli sync --format json
scanをプレコミットフックやCIパイプラインに追加しましょう。syncを使ってリリース前に翻訳カバレッジを監査できます。
AI支援翻訳のためのMCPサーバー
2つのMCPサーバーがAIツールを翻訳ワークスペースに直接接続します:
| パッケージ | ツール数 | 用途 |
|---|---|---|
| @better-i18n/mcp | 11ツール | 翻訳管理(キー、翻訳、パブリッシング) |
| @better-i18n/mcp-content | 17ツール | コンテンツ管理(モデル、エントリ、ローカライズコンテンツ) |
Claude、Cursor、Windsurf、およびMCP互換のあらゆるAIツールで動作します。AIアシスタントがIDEを離れることなく、キーの作成、翻訳の更新、コンテンツの管理を行えます。
セキュリティとアクセス制御
インフラストラクチャ
- Cloudflare Workers — DDoS保護を内蔵したエッジコンピューティング
- PlanetScale MySQL — 自動バックアップ付きのサーバーレスデータベース
- Cloudflare R2 — 翻訳ファイル用オブジェクトストレージ
暗号化
- 保存時:AES-256暗号化
- 転送時:すべての接続にTLS 1.3
認証
- ダッシュボード:GitHub OAuth(パスワードの保存なし)
- API:bcryptでハッシュ化されたキーによるBearerトークン認証
- キースコープ:APIキーを特定のプロジェクトにスコープ可能
- キー管理:ダッシュボードからの即時無効化
アクセス制御
- 組織およびプロジェクトレベルでのロールベースアクセス制御(RBAC)
- すべての機密操作に対する監査ログ
- すべての内部アクセスにおける最小権限の原則
コンプライアンス
| 規格 | 状況 |
|---|---|
| GDPR | 準拠 — データ処理契約あり、消去権対応、リクエストに応じたデータエクスポート |
| SOC 2 Type II | 進行中 — 認証取得に向けて取り組み中 |
透明性に関する注記:当社はまだSOC 2 Type II認証を取得していません。当社のインフラプロバイダー(Cloudflare、PlanetScale)はSOC 2 Type IIおよびISO 27001認証を取得しています。当社はこれらの基準に沿ったセキュリティ慣行を維持しており、独自の認証取得を進めています。詳細についてはセキュリティドキュメントをご覧ください。
フレームワークサポート
| フレームワーク | パッケージ | 特徴 |
|---|---|---|
| Next.js(App Router & Pages) | @better-i18n/next | サーバーコンポーネント、ミドルウェアルーティング |
| TanStack Start | @better-i18n/use-intl | SSR、$localeパラメータによるファイルベースルーティング |
| Vite + React | @better-i18n/use-intl | クライアントサイドロケール切替のSPA |
| Expo(React Native) | @better-i18n/expo | オフラインキャッシュ、動的ローカライゼーション、OTA更新 |
すべてのフレームワーク統合は同じ翻訳キーと名前空間を使用するため、WebアプリとモバイルアプリでSingle Source of Truthを共有できます。
マルチチーム翻訳管理
名前空間の構成
翻訳をチーム、機能、またはコンテンツタイプごとに整理:
your-org/your-project
├── auth/ → 認証チーム
├── dashboard/ → プロダクトチーム
├── marketing/ → マーケティングチーム
├── help/ → サポートチーム
└── onboarding/ → グロースチーム
各名前空間は独立した翻訳進捗とレビューワークフローを持つことができます。
用語集管理
ブランド用語、製品名、専門用語を一度定義すれば、すべての翻訳で一貫性が保たれます:
- 承認済み用語 — 各言語における製品用語の正しい翻訳を設定
- 翻訳禁止ルール — ブランド名、専門用語、略語をソース言語のまま維持するようマーク
- 一貫性警告 — 翻訳者が未承認の代替語を使用した場合に通知を表示
コンテキストを活用したAI翻訳
AI翻訳は用語集と名前空間のコンテキストを尊重します。以下の用途にご活用ください:
- 初稿生成 — AIが用語体系に従った翻訳を生成し、人間のレビュアーが仕上げ
- 一括翻訳 — 名前空間全体を数分で新しい言語に翻訳
- モデル選択 — 品質要件に応じてGPT-4o、Claude、Gemini、DeepLから選択
大規模組織向けのスケーリングパターン
マルチプロジェクト構成
エンタープライズ組織は多くの場合、複数のプロダクトを持っています。それぞれが独立した名前空間、用語集、チームアクセスを持つbetter-i18nプロジェクトを取得します:
your-org/web-app
your-org/mobile-app
your-org/marketing-site
your-org/help-center
Content SDKとREST APIは同じ認証で、すべてのプロジェクトにまたがって動作します。
CI/CD統合
# .github/workflows/i18n-check.yml
name: Translation Coverage Check
on: [push, pull_request]
jobs:
i18n:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npx @better-i18n/cli scan --ci
- run: npx @better-i18n/cli sync --format json
未翻訳の文字列を導入するPRをブロック。プッシュのたびに翻訳カバレッジを監査。
大規模コンテンツ管理
Content SDKはローカライズされたコンテンツのヘッドレスCMSパターンをサポートします:
// ドイツ語で公開済みのヘルプ記事をすべて取得
const { data: articles, total } = await client
.from("help-articles")
.eq("status", "published")
.language("de")
.order("updatedAt", { ascending: false })
.limit(50);
// 著者リレーションを展開して単一記事を取得
const { data: article } = await client
.from("help-articles")
.language("de")
.expand("author", "category")
.single("getting-started");
クエリビルダーはイミュータブルで、完全に型付けされ、totalとhasMoreのメタデータ付きのページネーション結果を返します。
現在提供していない機能
当社の現在の提供範囲について、率直にお伝えします:
- SSO/SAML — 現在未対応。認証は現在GitHub OAuthで行われています。SSOはロードマップに含まれています。
- オンプレミスデプロイ — 当社はクラウドホスト型のSaaSプラットフォームです。セルフホストオプションは現在利用できません。
- カスタムデータレジデンシー — データはCloudflareのグローバルネットワークを通じて処理され、PlanetScaleに保存されます。リージョン固有のホスティングは現在利用できません。
- 専用SLA — 金銭的ペナルティ付きの契約上のアップタイムSLAは現在提供していません。
これらのいずれかが貴社にとって障壁となる場合は、お問い合わせいただき、ご要件と当社のロードマップのタイムラインについてご相談ください。
はじめに
- dash.better-i18n.comで組織を作成
- 最初のプロジェクトをセットアップし、言語を設定
- CLIをインストール —
npm install -D @better-i18n/cli - GitHubを接続 — 翻訳ファイルの同期を有効化
- MCPサーバーを追加 — AIツールに翻訳へのアクセスを提供
- SDKを統合 — アプリケーションで
@better-i18n/next、@better-i18n/use-intl、または@better-i18n/expoを使用
無料で始める — クレジットカード不要。API、CLI、MCPサーバー、すべてのフレームワーク統合はすべてのプランでご利用いただけます。詳細なセットアップガイドはドキュメントをご覧ください。