Renombrado de claves

Max PrilutskiyCEO y cofundadorActualizado el hace 3 meses · 1 min de lectura

Obsoleto

Esta documentación cubre el CLI heredado (v0). La versión actual del CLI es la v1. Ver la documentación actual de CLI

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.

json
// 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:

json
// 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:

json
// 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.

Siguientes pasos#