|Labs
デモを予約プラットフォーム
React (Lingo Compiler)
Alpha
React MCPReact (i18n)旧CLI(v0)
非推奨

Lingo.dev CLI

  • 仕組み
  • セットアップ
  • クイックスタート
  • モノレポ

設定

  • 対応フォーマット
  • i18n.json
  • i18n.lock
  • 対応ロケール

機能

  • 既存の翻訳
  • 言語を追加する
  • オーバーライド
  • 翻訳ノート
  • 翻訳キー
  • キーのリネーム
  • キーのロック
  • キーの無視
  • キー保持
  • AIでキーを抽出

パフォーマンス

  • 大規模プロジェクト
  • 並列処理
  • コスト見積もり

再翻訳

  • 自動再翻訳
  • 再翻訳
  • 翻訳を削除

このドキュメントは非推奨の旧CLI(v0)を対象としています。現行のCLIはv1です。 現行CLIのドキュメントを見る

i18n.json 設定

i18n.json は、Lingo.dev CLI と CI/CD integrations を制御する設定ファイルです。翻訳対象の言語、翻訳可能なコンテンツの場所、使用する翻訳バックエンドを定義します。

最小構成の例#

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

$schema フィールドは、IDE での自動補完とバリデーションを有効にします。version フィールドは、スキーマのバージョンを管理し、自動移行との互換性を保ちます。

ロケール#

locale セクションでは、ソース言語とターゲット言語を定義します。

json
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  }
}
フィールド説明
locale.sourceソースコンテンツが書かれている言語です。すべての翻訳はこのロケールを起点に行われます。
locale.targetsターゲット言語の配列です。各ターゲットごとに、bucket 形式に応じた別々のファイル(またはセクション)が生成されます。

言語コードは BCP 47 標準に準拠しています。en、en-US、es-ES、zh-Hans に加え、Android の en-rUS のようなプラットフォーム固有の形式にも対応しています。

利用可能なロケールコードを一覧表示するには、次を実行します。

bash
npx lingo.dev@latest show locale sources   # Available source languages
npx lingo.dev@latest show locale targets   # Available target languages

Buckets#

Buckets では、ファイル検出パターンと処理ルールを定義します。各 bucket キーはファイル形式を表し、その値で対象ファイルと除外ファイルを設定します。

json
{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "exclude": ["locales/[locale]/internal.json"]
    },
    "markdown": {
      "include": ["docs/[locale]/*.md"]
    }
  }
}
フィールド説明
include[locale] プレースホルダーを含むファイルパターンの配列です。glob ワイルドカード(*)に対応しています。
exclude任意。処理時にスキップするパターンの配列です。
lockedKeys任意。値が翻訳されず、ソースからそのままコピーされるキーです。Key Locking を参照してください。
ignoredKeys任意。翻訳対象から完全に除外されるキーです。ターゲットファイルには出力されません。Key Ignoring を参照してください。
preservedKeys任意。最初にソースから一度だけ初期化され、その後は自動更新から保護されるキーです。Key Preserving を参照してください。
injectLocale任意。ターゲットのロケールコードが自動で挿入されるキーです。

対象パターン#

対象パターンでは [locale] プレースホルダーを使用します。実行時に、設定済みのロケールコードへ展開されます。

  • locales/[locale].json → locales/en.json、locales/es.json
  • docs/[locale]/*.md → docs/en/*.md、docs/es/*.md

再帰的な glob パターン(**/*.json)には対応していません。代わりに、明示的なディレクトリパスを使用してください。

カスタムロケール区切り文字#

デフォルトでは、ファイル名内のロケールコードはダッシュ(-)区切りで扱われます: en-US.json。代わりにアンダースコアを使うには、delimiter フィールドを持つオブジェクトを渡します。

json
{
  "include": [
    "standard/[locale].json",
    { "path": "legacy/[locale].json", "delimiter": "_" }
  ]
}

これにより、legacy/en-US.json ではなく legacy/en_US.json が生成されます。

キーパス記法#

lockedKeys、ignoredKeys、preservedKeys の各配列では、ネストされたキーにスラッシュ(/)記法を使用し、ワイルドカードにはアスタリスク(*)を使用します。

json
{
  "lockedKeys": ["brand/name", "config/*"]
}

対応している bucket タイプの一覧は、Supported Formats を参照してください。

プロバイダー#

provider セクションでは、翻訳に使用する LLM プロバイダーを直接設定します。このセクションは任意です。省略した場合、CLI は Lingo.dev 上の ローカライゼーションエンジン を使用します。

json
{
  "provider": {
    "id": "openai",
    "model": "gpt-4o-mini",
    "prompt": "Translate the provided text from {source} to {target}."
  }
}
フィールド説明
provider.idプロバイダー識別子: openai、anthropic、google、mistral、openrouter、または ollama。
provider.modelプロバイダー側のモデル名です(例: gpt-4o-mini、claude-3-haiku)。
provider.promptシステムプロンプトです。{source} と {target} は実行時にロケールコードへ置き換えられます。
provider.baseUrl任意。カスタム API エンドポイントです(Ollama では必須: http://localhost:11434)。

エンジン接続#

翻訳を特定の ローカライゼーションエンジン 経由で処理するには、engineId フィールドを追加します。

json
{
  "engineId": "eng_SxjMwMsfOIsvV1wh"
}

engineId が設定されている場合、すべての翻訳リクエストにエンジンの ブランドボイス、glossary、instructions、model configuration が自動で適用されます。これを省略し、LINGO_API_KEY が設定されている場合は、CLI が組織内のデフォルトエンジンを使用します。

詳しいセットアップ手順は、Connect Your Engine を参照してください。

環境変数#

変数必須説明
LINGO_API_KEYLingo.dev Engine 用Lingo.dev API キーです。
LINGO_API_URLNoカスタム API ベース URL(セルフホスト環境またはステージング環境向け)。
OPENAI_API_KEYOpenAI プロバイダー用OpenAI API キー。
ANTHROPIC_API_KEYAnthropic プロバイダー用Anthropic API キー。
GOOGLE_API_KEYGoogle プロバイダー用Google API キー。
MISTRAL_API_KEYMistral プロバイダー用Mistral API キー。
OPENROUTER_API_KEYOpenRouter プロバイダー用OpenRouter API キー。

完全な例#

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "lockedKeys": ["brand/name", "brand/tagline"],
      "ignoredKeys": ["internal/*"]
    },
    "markdown": {
      "include": ["docs/[locale]/*.md"]
    }
  },
  "engineId": "eng_SxjMwMsfOIsvV1wh"
}

バージョン移行#

CLI は古い i18n.json 設定を最新のスキーマバージョンへ自動的に移行します。現在のファイルをバックアップしたうえでスキーマを更新し、すべての設定を保持します。手動対応は不要です。

次のステップ#

Supported Formats
すべての bucket タイプとその設定
i18n.lock
lockfile が翻訳状態を追跡する仕組み
Connect Your Engine
翻訳をローカライゼーションエンジン経由で処理
Setup
CLI をインストールして使い始める

このページは役に立ちましたか?

Max PrilutskiyMax Prilutskiy·更新済み 1日前·2分で読めます