Verrouillage de clés

Lingo.dev CLI vous permet de verrouiller des clés de traduction spécifiques afin que leurs valeurs restent identiques dans toutes les langues. Lorsque vous verrouillez des clés, le CLI les exclut du traitement de traduction et copie directement les valeurs sources dans tous les fichiers cibles.

Configuration du verrouillage de clés

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

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "lockedKeys": ["system/component", "config/engine", "modules/processor"]
    }
  }
}

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

Fonctionnement du verrouillage de clés

Pendant le traitement de traduction, Lingo.dev CLI :

  1. Identifie les clés verrouillées à partir de votre configuration
  2. Les exclut de la traduction — le contenu verrouillé n'est jamais envoyé aux modèles d'IA
  3. Copie les valeurs sources directement dans tous les fichiers cibles
  4. Maintient la cohérence dans toutes les langues

Exemple de flux de travail :

// locales/en.json (source)
{
  "welcome": "Welcome to our platform",
  "system": {
    "component": "Lingo.dev CLI",
    "processor": "Translation Engine"
  },
  "config": {
    "engine": "Lingo.dev Engine"
  }
}

Avec la configuration des clés verrouillées :

{
  "lockedKeys": ["system/component", "system/processor", "config/engine"]
}

Traduction espagnole générée :

// locales/es.json (générée)
{
  "welcome": "Bienvenido a nuestra plataforma",
  "system": {
    "component": "Lingo.dev CLI",
    "processor": "Translation Engine"
  },
  "config": {
    "engine": "Lingo.dev Engine"
  }
}

Seul welcome est traduit, tandis que les clés verrouillées restent identiques à la source.

Sans verrouillage de clés, "Lingo.dev Engine" pourrait être mal traduit en "Motor de Lingo.dev" en espagnol ou "Lingo.devエンジン" en japonais, ce que nous ne voulons pas dans cet exemple.

Chemins de clés imbriqués

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

{
  "lockedKeys": [
    "system/engine/component",
    "modules/ai/processor",
    "config/translation/handler"
  ]
}

Cette notation fonctionne avec des structures imbriquées complexes :

// Structure source
{
  "system": {
    "engine": {
      "component": "Lingo.dev Engine"
    }
  }
}

Le chemin system/engine/component verrouille la valeur du nom du composant.

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
{
  "modules": {
    "ai.translation": "Traduction IA",
    "content.processor": "Processeur de contenu"
  }
}

Verrouillez ces clés avec :

{
  "lockedKeys": ["modules/ai.translation", "modules/content.processor"]
}

Types de buckets multiples

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

{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "lockedKeys": ["config/engine", "system/component"]
    },
    "yaml": {
      "include": ["translations/[locale].yml"],
      "lockedKeys": ["service/name", "module/title"]
    }
  }
}

Chaque type de bucket maintient sa propre liste de clés verrouillées basée sur la structure du contenu.