Ignorer des clés

La CLI Lingo.dev vous permet d'ignorer des clés de traduction spécifiques afin qu'elles soient complètement exclues du processus de traduction. Les clés ignorées ne sont pas copiées dans les fichiers cibles et restent intactes pendant les opérations de la CLI.

Lorsque vous ignorez des clés, la CLI les saute entièrement pendant la découverte de contenu et la génération de traduction.

Configuration de l'ignorance des clés

Ajoutez ignoredKeys à la configuration de votre bucket dans i18n.json :

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

Le tableau ignoredKeys utilise la notation avec barre oblique (/) pour spécifier les clés imbriquées.

Fonctionnement de l'ignorance des clés

Pendant le traitement des traductions, la CLI Lingo.dev :

  1. Identifie les clés ignorées à partir de votre configuration
  2. Les exclut de la découverte de contenu — les clés ignorées ne sont jamais traitées
  3. Les saute dans les fichiers cibles — les clés ignorées n'apparaissent pas dans les traductions générées
  4. Maintient la séparation entre le contenu de développement et de production

Exemple de flux de travail :

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

Avec la configuration des clés ignorées :

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

Traduction espagnole générée :

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

Seules les clés non ignorées sont traduites. La section entière internal est exclue des fichiers cibles.

Chemins de clés imbriquées

Utilisez la notation avec barre oblique (/) pour ignorer des clés à n'importe quelle profondeur :

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

Cette notation fonctionne avec des structures imbriquées complexes :

// Structure source
{
  "development": {
    "logging": {
      "level": "verbose"
    }
  }
}

Le chemin development/logging/level exclut cette configuration de la traduction.

Clés avec des points

La notation avec barre oblique gère les clés qui contiennent des points dans leurs noms :

// Source avec des noms de clés à points
{
  "dev": {
    "api.mock": "API simulée activée",
    "cache.clear": "Effacer le cache au démarrage"
  }
}

Ignorez ces clés avec :

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

Types de buckets multiples

Différents formats de fichiers peuvent avoir différentes clés ignorées :

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

Chaque type de bucket maintient sa propre liste de clés ignorées en fonction de la structure du contenu.

Ignorer des clés vs verrouiller des clés

L'ignorance de clés et le verrouillage de clés servent à des fins différentes :

Ignorer des clés (ignoredKeys) :

  • Les clés sont complètement exclues du traitement de traduction
  • Les clés ignorées n'apparaissent pas du tout dans les fichiers cibles
  • Utilisé pour le développement, les tests ou le contenu interne qui ne doit pas être traduit

Verrouiller des clés (lockedKeys) :

  • Les clés sont incluses dans le traitement de traduction mais les valeurs restent inchangées
  • Les clés verrouillées apparaissent dans les fichiers cibles avec des valeurs sources identiques
  • Utilisé pour les identifiants techniques, les noms de composants ou les valeurs qui doivent rester cohérentes

Exemple comparatif :

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

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

// Fichier cible généré
{
  "welcome": "Bienvenido",
  "system": {
    "component": "Lingo.dev Engine"
  }
  // internal/debug est complètement absent
}