better-i18n について
better-i18n は、翻訳管理やコンテンツ、公開ワークフローを扱う、現代的なアプリ向けローカライゼーション基盤のスキルです。複数のフレームワーク向け SDK と、翻訳キーや文言を管理する MCP ツールを備えています。
主な機能
- 01複数フレームワーク向け SDK とツール
- 02CLI による翻訳キーのスキャンと同期
- 03CDN または GitHub への翻訳公開
- 04ローカライズコンテンツ用 CMS
- 05カバレッジとローカライゼーション状態の分析
活用シーン
- 01コード内のハードコード文字列の検出
- 02翻訳カバレッジとキー同期の確認
- 03翻訳を CDN または GitHub に公開
MCP 対応
翻訳キーと翻訳文の AI 支援管理向け MCP ツールを提供し、@better-i18n/mcp と @better-i18n/mcp-content の各パッケージもあります。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ better-i18n/ skills --skill better-i18nインストール後、Claude Code で/better-i18nを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/cdn.mdcli.mdcontent.mdfile-formats.mdgithub-sync.mdkey-naming.mdmcp.mdpublish-and-analytics.mdsdk-mobile.mdsdk-next.mdsdk-react.md詳細
better-i18n — 最新のアプリ向けローカライズ基盤。CMS + TMS + CDN + AI + MCP。 ダッシュボード:https://better-i18n.com · ドキュメント:https://docs.better-i18n.com · CDN:https://cdn.better-i18n.com · スキル:https://github.com/better-i18n/skills
パッケージのバージョン
| パッケージ | バージョン | インストール |
|---|---|---|
@better-i18n/next | 0.7.2 | npm install @better-i18n/[email protected] |
@better-i18n/use-intl | 0.5.0 | npm install @better-i18n/[email protected] |
@better-i18n/core | 0.5.0 | npm install @better-i18n/[email protected] |
@better-i18n/expo | 0.7.5 | npm install @better-i18n/[email protected] |
@better-i18n/sdk | 3.2.0 | npm install @better-i18n/[email protected] |
@better-i18n/cli | 0.2.6 | npx @better-i18n/[email protected] |
@better-i18n/mcp | 0.15.5 | npx -y @better-i18n/[email protected] |
@better-i18n/mcp-content | 0.8.1 | npx -y @better-i18n/[email protected] |
インストール前に、最新バージョンをnpmで必ず確認してください。
SDK の選択
| フレームワーク | パッケージ | リファレンス |
|---|---|---|
| Next.js(App Router または Pages Router) | @better-i18n/next | <references/sdk-next.md> |
| React + TanStack Router / use-intl | @better-i18n/use-intl | <references/sdk-react.md> |
| Hono / Node.js サーバー | @better-i18n/server | <references/sdk-react.md> |
| Remix / Shopify Hydrogen | @better-i18n/remix | <references/sdk-react.md> |
| React Native / Expo | @better-i18n/expo | <references/sdk-mobile.md> |
| Swift(iOS / macOS / visionOS) | SPM 経由の BetterI18n | <references/sdk-mobile.md> |
| Flutter / Dart | pub.dev の better_i18n | <references/sdk-mobile.md> |
| ヘッドレス / Vanilla JS | @better-i18n/core | <references/sdk-react.md> |
フレームワークのクイックスタート
| フレームワーク | ドキュメントページ |
|---|---|
| Next.js App Router | https://docs.better-i18n.com/frameworks/nextjs.mdx |
| TanStack Start(SSR) | https://docs.better-i18n.com/frameworks/tanstack-start.mdx |
| Vite + React | https://docs.better-i18n.com/frameworks/vite.mdx |
| Vite + React Router | https://docs.better-i18n.com/frameworks/vite/react-router.mdx |
| Remix / Hydrogen | https://docs.better-i18n.com/frameworks/remix.mdx |
| Expo / React Native | https://docs.better-i18n.com/frameworks/expo.mdx |
| iOS / Swift | https://docs.better-i18n.com/frameworks/ios.mdx |
| Flutter / Dart | https://docs.better-i18n.com/frameworks/flutter.mdx |
| Hono / Node.js | https://docs.better-i18n.com/frameworks/server-sdk/hono.mdx |
| Express / Fastify | https://docs.better-i18n.com/frameworks/server-sdk/node.mdx |
| tRPC | https://docs.better-i18n.com/frameworks/server-sdk/trpc.mdx |
| Supabase Edge | https://docs.better-i18n.com/frameworks/server-sdk/supabase.mdx |
ワークフローの選択
| タスク | アプローチ | リファレンス |
|---|---|---|
| JSON ファイルをアップロードする(GitHub は不要) | CDN 優先 | <references/cdn.md> |
| GitHub の PR に基づく翻訳の同期 | GitHub App + 公開フロー | <references/github-sync.md> |
| AI を活用したキーと翻訳の管理 | MCP ツール | <references/mcp.md> |
| ローカライズされた CMS コンテンツ(ブログ、ドキュメント、ページ) | コンテンツ CMS + SDK | <references/content.md> |
| コードベース内のハードコードされた文字列をスキャンする | CLI scan | <references/cli.md> |
| 翻訳の網羅率とキーの同期を確認する | CLI sync / check | <references/cli.md> |
| スコア付きで i18n の状態を包括的に分析する | CLI doctor | <references/cli.md> |
| キーの命名規則と名前空間の構成を定義する | キーの規約 | <references/key-naming.md> |
| JSON ファイル形式を選択する | ファイル形式 | <references/file-formats.md> |
| 翻訳を CDN または GitHub に公開する | 公開フロー | <references/publish-and-analytics.md> |
| 網羅率、健全性の推移、CDN の使用状況を追跡する | 分析 | <references/publish-and-analytics.md> |
| 日付、数値、通貨、相対時間をフォーマットする | フォーマット | <references/sdk-react.md> |
| 国 / Accept-Language からロケールを検出する | 地理情報による検出 | <references/cdn.md> |
型安全な t("key") の自動補完 | TypeScript | <references/sdk-react.md> |
| 公開時 / キー変更時の Webhook | 送信 Webhook | <references/publish-and-analytics.md> |
コードを書く前に、関連するリファレンスを必ずお読みください。
重要なルール(すべてに適用)
- プロジェクト識別子は常に
"org/project"です。例:"acme/dashboard"や"stripe/web" - ロケールコードは CDN では小文字の BCP 47 形式です。
"pt-BR"→"pt-br"。CDN パスを構築する前に、必ずnormalizeLocale()を呼び出してください。 - シングルトン —
createI18n(Next.js)、createServerI18n、createRemixI18n、createI18nCoreはモジュールスコープで一度だけインスタンス化してください。関数、リクエストハンドラー、コンポーネント内では決してインスタンス化しないでください。 createKeysとupdateKeysの違い —createKeysは新しいキーのみを作成します。既存のキーに使用すると、存在しないキーが蓄積する原因になります(記録された事例:1 回の操作で 1,005 件の重複)。まずlistKeysでキー ID を取得してから、updateKeysを呼び出してください。- CDN は常に HTTP 200 を返します — HTTP ステータスコードではなく、JSON 本文内の
{ fallback: true }を確認してください。 - CDN パスのデフォルト名前空間 →
"translations"— 名前空間"default"は内部では"translations"として保存されます。フラットキーのプロジェクトでは、名前空間にnullを指定してください。 - 無料で始められます — すべての SDK と CLI はオープンソースです。有料プランでは、より多くの言語、履歴、チーム機能を利用できます。
コメント
Markdown 対応