El CLI de Lingo.dev detecta cuando renombras claves de traducción y conserva automáticamente las traducciones existentes. Si cambia el nombre de la clave, pero el contenido de origen sigue siendo el mismo, el CLI aplica la traducción existente a la nueva clave, sin volver a traducir.
Cómo funciona#
El CLI compara huellas del contenido, no nombres de claves. Cuando encuentra una coincidencia de huella bajo una clave distinta, el CLI la identifica como un cambio de nombre.
// 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"
}Después de renombrar las claves en el archivo de origen:
// locales/en.json (after refactoring)
{
"homepage.welcome": "Welcome to our platform",
"button.save": "Save"
}Al ejecutar npx lingo.dev@latest run, las traducciones se conservan:
// locales/es.json (translations carried forward)
{
"homepage.welcome": "Bienvenido a nuestra plataforma",
"button.save": "Guardar"
}Reglas de detección#
Se detecta un cambio de nombre de clave cuando:
- Cambia el nombre de la clave
- El contenido de origen permanece idéntico
- La clave existe en el mismo bucket
No se detecta un cambio de nombre de clave cuando:
- La clave y el contenido cambian al mismo tiempo (se trata como una clave nueva)
- Solo cambia el contenido (se trata como una actualización de contenido y activa la retraducción)
Refactorización masiva#
La detección de cambios de nombre funciona a cualquier escala. Puedes reorganizar por completo la estructura de tus claves, desde claves planas hasta espacios de nombres anidados, y el CLI conserva todas las traducciones coincidentes en una sola ejecución.
