Le CLI Lingo.dev détecte automatiquement le renommage des clés de traduction et conserve les traductions existantes. Si le nom de la clé change mais que le contenu source reste identique, le CLI applique la traduction existante à la nouvelle clé — sans retraduction.
Comment ça marche#
Le CLI compare les empreintes du contenu, pas les noms de clés. Lorsqu’il trouve une empreinte identique sous une autre clé, il l’identifie comme un renommage.
// locales/en.json (before refactoring)
{
"welcome_msg": "Welcome to our platform",
"btn_save": "Save"
}
// locales/es.json (existing translations)
{
"welcome_msg": "Bienvenido a nuestra plataforma",
"btn_save": "Guardar"
}Après avoir renommé des clés dans le fichier source :
// locales/en.json (after refactoring)
{
"homepage.welcome": "Welcome to our platform",
"button.save": "Save"
}L’exécution de npx lingo.dev@latest run conserve les traductions :
// locales/es.json (translations carried forward)
{
"homepage.welcome": "Bienvenido a nuestra plataforma",
"button.save": "Guardar"
}Règles de détection#
Le renommage d’une clé est détecté lorsque :
- Le nom de la clé change
- Le contenu source reste identique
- La clé existe dans le même bucket
Le renommage d’une clé n’est pas détecté lorsque :
- La clé et le contenu changent en même temps (considéré comme une nouvelle clé)
- Seul le contenu change (considéré comme une mise à jour du contenu, ce qui déclenche une retraduction)
Refactorisation à grande échelle#
La détection des renommages fonctionne à toutes les échelles. Vous pouvez réorganiser toute la structure de vos clés — de clés à plat à des espaces de noms imbriqués — et le CLI reprend toutes les traductions correspondantes en une seule exécution.
