Schlüssel ignorieren

Die Lingo.dev CLI ermöglicht es Ihnen, bestimmte Übersetzungsschlüssel zu ignorieren, sodass diese vollständig von der Übersetzungsverarbeitung ausgeschlossen werden. Ignorierte Schlüssel werden nicht in Zieldateien kopiert und bleiben während der CLI-Operationen unberührt.

Wenn Sie Schlüssel ignorieren, überspringt die CLI diese vollständig während der Inhaltserkennung und Übersetzungsgenerierung.

Einrichtung des Schlüssel-Ignorierens

Fügen Sie ignoredKeys zu Ihrer Bucket-Konfiguration in i18n.json hinzu:

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

Das ignoredKeys-Array verwendet die Vorwärtsschrägstrich-Notation (/), um verschachtelte Schlüssel zu spezifizieren.

Wie das Ignorieren von Schlüsseln funktioniert

Während der Übersetzungsverarbeitung führt die Lingo.dev CLI folgende Schritte durch:

  1. Identifiziert ignorierte Schlüssel aus Ihrer Konfiguration
  2. Schließt sie von der Inhaltserkennung aus — ignorierte Schlüssel werden niemals verarbeitet
  3. Überspringt sie in Zieldateien — ignorierte Schlüssel erscheinen nicht in generierten Übersetzungen
  4. Erhält die Trennung zwischen Entwicklungs- und Produktionsinhalten

Beispiel-Workflow:

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

Mit Konfiguration für ignorierte Schlüssel:

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

Generierte spanische Übersetzung:

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

Nur nicht-ignorierte Schlüssel werden übersetzt. Der gesamte internal-Abschnitt wird aus Zieldateien ausgeschlossen.

Verschachtelte Schlüsselpfade

Verwenden Sie die Vorwärtsschrägstrich-Notation (/), um Schlüssel in beliebiger Tiefe zu ignorieren:

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

Diese Notation funktioniert mit komplexen verschachtelten Strukturen:

// Quellstruktur
{
  "development": {
    "logging": {
      "level": "verbose"
    }
  }
}

Der Pfad development/logging/level schließt diese Konfiguration von der Übersetzung aus.

Schlüssel mit Punkten

Die Forward-Slash-Notation behandelt Schlüssel, die Punkte in ihren Namen enthalten:

// Quelle mit Schlüsselnamen, die Punkte enthalten
{
  "dev": {
    "api.mock": "Mock-API aktiviert",
    "cache.clear": "Cache beim Start leeren"
  }
}

Ignorieren Sie diese Schlüssel mit:

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

Mehrere Bucket-Typen

Verschiedene Dateiformate können unterschiedliche ignorierte Schlüssel haben:

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

Jeder Bucket-Typ verwaltet seine eigene Liste ignorierter Schlüssel basierend auf der Inhaltsstruktur.

Schlüssel ignorieren vs. Schlüssel sperren

Schlüssel ignorieren (ignoredKeys) und Schlüssel sperren (lockedKeys) dienen unterschiedlichen Zwecken:

Schlüssel ignorieren (ignoredKeys):

  • Schlüssel werden vollständig von der Übersetzungsverarbeitung ausgeschlossen
  • Ignorierte Schlüssel erscheinen überhaupt nicht in Zieldateien
  • Verwendet für Entwicklung, Tests oder interne Inhalte, die nicht übersetzt werden sollten

Schlüssel sperren (lockedKeys):

  • Schlüssel werden in die Übersetzungsverarbeitung einbezogen, aber Werte bleiben unverändert
  • Gesperrte Schlüssel erscheinen in Zieldateien mit identischen Quellwerten
  • Verwendet für technische Kennungen, Komponentennamen oder Werte, die konsistent bleiben müssen

Vergleichsbeispiel:

// Quelldatei
{
  "welcome": "Welcome",
  "system": {
    "component": "Lingo.dev Engine"
  },
  "internal": {
    "debug": "Debug enabled"
  }
}

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

// Generierte Zieldatei
{
  "welcome": "Bienvenido",
  "system": {
    "component": "Lingo.dev Engine"
  }
  // internal/debug fehlt vollständig
}