Trabajando con traducciones existentes

Lingo.dev CLI se integra perfectamente con proyectos que ya tienen archivos de traducción, preservando el trabajo existente mientras completa las traducciones faltantes.

Cuando ejecutas la CLI en un proyecto con traducciones existentes, analiza lo que ya está traducido y solo genera contenido para las claves faltantes, manteniendo la calidad y consistencia de tus traducciones existentes.

Nota: Asegúrate de que tus archivos de idioma de destino estén vacíos y no contengan contenido en el idioma de origen. Tener contenido del idioma de origen en archivos de destino es una mala práctica y puede interferir con el proceso de traducción.

Cómo funciona

Lingo.dev CLI compara tu contenido de origen con los archivos de destino existentes para identificar brechas. Solo se generan las traducciones faltantes, dejando tu trabajo existente intacto.

Escenario de ejemplo:

// locales/en.json (origen)
{
  "welcome": "Welcome to our app",
  "button.save": "Save",
  "button.cancel": "Cancel",
  "error.network": "Network error"
}

// locales/es.json (traducciones parciales existentes)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

Ejecutar npx lingo.dev@latest i18n genera solo las traducciones faltantes:

// locales/es.json (después de ejecutar CLI)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar",
  "button.cancel": "Cancelar",
  "error.network": "Error de red"
}

Tus traducciones existentes de "welcome" y "button.save" permanecen sin cambios.

Primera ejecución con traducciones existentes

Cuando ejecutas Lingo.dev CLI por primera vez en un proyecto con traducciones existentes, crea el archivo i18n.lock basado en tu estado actual. Este archivo de bloqueo rastrea qué contenido ha sido procesado, asegurando que las traducciones existentes no sean regeneradas.

Flujo de trabajo:

  1. Escaneo inicial — CLI identifica traducciones existentes en archivos de destino
  2. Análisis de brechas — Compara las claves de origen con los archivos de destino para encontrar traducciones faltantes
  3. Generación de traducciones — Crea solo las traducciones faltantes
  4. Creación del archivo de bloqueo — Registra las huellas digitales de contenido para todo el contenido de origen

Migración desde sistemas de traducción heredados

Lingo.dev CLI funciona con archivos de traducción creados por cualquier herramienta, siempre que sigan formatos estándar como JSON, YAML u otros tipos de archivo compatibles.

Pasos de migración:

  1. Configurar i18n.json — Configura tus patrones de bucket para que coincidan con las ubicaciones de archivos existentes
  2. Ejecutar la traducción inicial — CLI completa cualquier traducción faltante
  3. Revisar y confirmar — Las traducciones existentes se conservan, solo se completan los vacíos

Ejemplo de migración:

// Tu estructura de proyecto existente
locales/
  en.json    (fuente)
  es.json    (traducciones parciales de herramienta anterior)
  fr.json    (traducciones parciales de herramienta anterior)

// Configuración de i18n.json
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

El CLI respeta tu estructura de archivos y traducciones existentes.

Gestión de la calidad de traducción

Las traducciones existentes podrían tener peor calidad que las traducciones generadas por motores de traducción de IA. Lingo.dev CLI proporciona opciones para actualizar traducciones cuando sea necesario:

Mantener traducciones existentes:

npx lingo.dev@latest i18n

# Preserva todas las traducciones existentes, completa los vacíos

Retraducir idiomas específicos:

npx lingo.dev@latest i18n --force --locale es

# Regenera todas las traducciones en español

Retraducir claves específicas:

npx lingo.dev@latest i18n --force --key error.network

# Regenera solo la clave error.network en todos los idiomas

Para más información sobre la retraducción, consulte Retraducción.

Archivos de destino vacíos

Si tienes archivos de destino vacíos o archivos con solo algunas claves, Lingo.dev CLI los trata como parcialmente traducidos y completa el contenido faltante.

Ejemplo:

// locales/de.json (archivo de destino vacío)
{}

Después de ejecutar el CLI, se convierte en un archivo de traducción completo con todas las claves de origen traducidas.

Inicialización del archivo de bloqueo

La primera ejecución crea un archivo i18n.lock que refleja el estado actual. Esto evita que la CLI retraduzca contenido que ya estaba presente, incluso si originalmente no fue generado por Lingo.dev CLI.

Este archivo de bloqueo garantiza un comportamiento consistente entre las traducciones existentes y las nuevas en adelante.