キー無視

Lingo.dev CLIでは、特定の翻訳キーを無視して翻訳処理から完全に除外することができます。無視されたキーはターゲットファイルにコピーされず、CLI操作中も変更されません。

キーを無視すると、CLIはコンテンツ検出と翻訳生成の際にそれらを完全にスキップします。

キー無視の設定

i18n.jsonのバケット設定にignoredKeysを追加します:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "ignoredKeys": ["internal/debug", "dev/settings", "temp/cache"]
    }
  }
}

ignoredKeys配列はフォワードスラッシュ(/)表記を使用してネストされたキーを指定します。

キー無視の仕組み

翻訳処理中、Lingo.dev CLIは:

  1. 設定から無視するキーを識別します
  2. コンテンツ検出からそれらを除外します — 無視されたキーは処理されません
  3. ターゲットファイルでそれらをスキップします — 無視されたキーは生成された翻訳に表示されません
  4. 開発コンテンツと本番コンテンツの分離を維持します

ワークフロー例:

// locales/en.json (ソース)
{
  "welcome": "Welcome to our platform",
  "system": {
    "component": "Lingo.dev CLI",
    "version": "1.0.0"
  },
  "internal": {
    "debug": "Debug mode enabled",
    "testData": "Sample test content"
  }
}

無視するキーの設定:

{
  "ignoredKeys": ["internal/debug", "internal/testData"]
}

生成されたスペイン語翻訳:

// locales/es.json (生成済み)
{
  "welcome": "Bienvenido a nuestra plataforma",
  "system": {
    "component": "Lingo.dev CLI",
    "version": "1.0.0"
  }
}

無視されていないキーのみが翻訳されます。internalセクション全体がターゲットファイルから除外されます。

ネストされたキーパス

フォワードスラッシュ(/)表記を使用して、任意の深さのキーを無視できます:

{
  "ignoredKeys": [
    "development/logging/level",
    "testing/mock/data",
    "admin/internal/config"
  ]
}

この表記は複雑なネスト構造でも機能します:

// ソース構造
{
  "development": {
    "logging": {
      "level": "verbose"
    }
  }
}

パスdevelopment/logging/levelはこの設定を翻訳から除外します。

ドット付きのキー

スラッシュ表記法は、名前にドットを含むキーを処理します:

// ドット付きキー名を持つソース
{
  "dev": {
    "api.mock": "モックAPIが有効",
    "cache.clear": "起動時にキャッシュをクリア"
  }
}

以下のようにこれらのキーを無視します:

{
  "ignoredKeys": ["dev/api.mock", "dev/cache.clear"]
}

複数のバケットタイプ

異なるファイル形式には異なる無視キーを設定できます:

{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "ignoredKeys": ["internal/debug", "dev/settings"]
    },
    "yaml": {
      "include": ["translations/[locale].yml"],
      "ignoredKeys": ["test/data", "admin/config"]
    }
  }
}

各バケットタイプは、コンテンツ構造に基づいて独自の無視キーリストを維持します。

キーの無視とキーのロック

**キーの無視(ignoredKeysキーのロック(lockedKeys)**は異なる目的を持ちます:

キーの無視(ignoredKeys):

  • キーは翻訳処理から完全に除外されます
  • 無視されたキーはターゲットファイルにまったく表示されません
  • 開発、テスト、または翻訳すべきでない内部コンテンツに使用されます

キーのロック(lockedKeys):

  • キーは翻訳処理に含まれますが、値は変更されません
  • ロックされたキーは同一のソース値でターゲットファイルに表示されます
  • 技術的な識別子、コンポーネント名、または一貫性を保つべき値に使用されます

比較例:

// ソースファイル
{
  "welcome": "Welcome",
  "system": {
    "component": "Lingo.dev Engine"
  },
  "internal": {
    "debug": "Debug enabled"
  }
}

// 設定
{
  "lockedKeys": ["system/component"],
  "ignoredKeys": ["internal/debug"]
}

// 生成されたターゲットファイル
{
  "welcome": "ようこそ",
  "system": {
    "component": "Lingo.dev Engine"
  }
  // internal/debugは完全に欠落しています
}