Cambio de nombre de claves

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

Obsoleto

Estos documentos cubren el CLI heredado (v0). El CLI actual es v1. Ver la documentación actual del CLI

El CLI de Lingo.dev detecta cuando cambias el nombre de las claves de traducción y conserva automáticamente las traducciones existentes. Si el nombre de la clave cambia pero el contenido de origen sigue siendo el mismo, el CLI aplica la traducción existente a la nueva clave, sin necesidad de volver a traducir.

Cómo funciona#

El CLI compara las huellas del contenido, no los nombres de las claves. Cuando encuentra una huella coincidente bajo una clave distinta, el CLI lo 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 cambiar el nombre de las claves en el archivo fuente:

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 a la vez (se considera una clave nueva)
  • Solo cambia el contenido (se considera una actualización del contenido y activa la retraducción)

Refactorización a gran escala#

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#