Le CLI Lingo.dev propose quatre contrôles au niveau des clés qui déterminent le comportement de chaque clé de traduction pendant le traitement. Chacun répond à un usage précis :
| Contrôle | Champ de configuration | Comportement |
|---|---|---|
| Verrouillage des clés | lockedKeys | Copie les valeurs source dans toutes les langues cibles, sans les traduire. Les clés apparaissent dans les fichiers cibles avec des valeurs identiques. |
| Exclusion des clés | ignoredKeys | Exclut complètement les clés du traitement. Elles n'apparaissent pas dans les fichiers cibles. |
| Préservation des clés | preservedKeys | Initialise les clés une seule fois à partir de la source, puis les protège des mises à jour automatiques. Idéal pour les contenus qui nécessitent une traduction manuelle. |
| Renommage des clés | Automatique | Détecte les clés renommées et conserve les traductions existantes. Aucune configuration n'est nécessaire. |
Quand utiliser chaque option#
Lock une clé lorsque sa valeur doit rester identique dans toutes les langues — noms de marque, identifiants techniques, valeurs de configuration :
{ "lockedKeys": ["brand/name", "config/apiUrl"] }Ignore une clé lorsqu'elle ne doit pas apparaître du tout dans les fichiers cibles — chaînes de débogage, indicateurs internes, données de test :
{ "ignoredKeys": ["internal/debug", "dev/testData"] }Preserve une clé lorsqu'elle nécessite une traduction manuelle — textes juridiques, contenus de conformité, textes marketing qui nécessitent une relecture humaine :
{ "preservedKeys": ["legal/privacy", "legal/terms"] }Le renommage est automatique — le CLI détecte lorsqu'une clé change de nom mais que son contenu reste identique, et réutilise la traduction existante sans la retraduire.
Notation des chemins de clés#
Tous les tableaux de clés utilisent la barre oblique (/) pour les chemins imbriqués et l'astérisque (*) comme joker :
{
"lockedKeys": ["brand/name"],
"ignoredKeys": ["internal/*"],
"preservedKeys": ["legal/privacy/full"]
}Les clés dont le nom contient des points sont gérées naturellement — la barre oblique sépare les niveaux de hiérarchie, donc modules/ai.translation cible correctement la clé "ai.translation" à l'intérieur de l'objet "modules".
