i18n.json 設定

更新日:先月 · 読了目安 2分

非推奨

このドキュメントは旧CLI(v0)について説明しています。現在のCLIはv1です。 現在の CLI ドキュメントを見る

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 標準に準拠しています。enen-USes-ESzh-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].jsonlocales/en.jsonlocales/es.json
  • docs/[locale]/*.mddocs/en/*.mddocs/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 が生成されます。

キーパス記法#

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

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プロバイダー識別子: openaianthropicgooglemistralopenrouter、または ollama
provider.modelプロバイダー側のモデル名です(例: gpt-4o-miniclaude-3-haiku)。
provider.promptシステムプロンプトです。{source}{target} は実行時にロケールコードへ置き換えられます。
provider.baseUrl任意。カスタム API エンドポイントです(Ollama では必須: http://localhost:11434)。

エンジン接続#

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

json
{
  "engineId": "eng_SxjMwMsfOIsvV1wh"
}

engineIdを設定すると、すべての翻訳リクエストに、そのエンジンのブランドボイス用語集ルール、およびモデル設定が自動的に適用されます。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 設定を最新のスキーマバージョンへ自動的に移行します。現在のファイルをバックアップしたうえでスキーマを更新し、すべての設定を保持します。手動対応は不要です。

次のステップ#