Cómo funciona

Lingo.dev CLI encapsula el complejo flujo de trabajo de procesamiento de localización detrás de una elegante interfaz de línea de comandos.

Cuando ejecutas npx lingo.dev@latest run, la CLI lee el archivo de configuración estándar i18n.json y realiza los siguientes 5 pasos:

1. Descubrimiento de contenido

Lingo.dev CLI trata tu proyecto como la fuente de verdad. Escanea recursivamente el proyecto en busca de archivos fuente y destino de traducción según tus configuraciones de bucket, leyéndolos en memoria para su procesamiento.

La fase de descubrimiento respeta:

  • Patrones de inclusión como locales/[locale].json
  • Patrones de exclusión para archivos que deseas omitir
  • Múltiples configuraciones de bucket para diferentes tipos de archivos

2. Limpieza de datos

No todo el contenido requiere traducción. Las aplicaciones de producción contienen números, booleanos, fechas, UUID y fragmentos de código que normalmente permanecen sin cambios en todos los idiomas.

Lingo.dev CLI filtra inteligentemente:

  • Valores numéricos como 42 o 3.14
  • Valores booleanos (true/false)
  • Fechas ISO y marcas de tiempo
  • UUID e identificadores similares
  • Bloques de código y fragmentos técnicos

Este filtrado reduce los costos de inferencia del LLM y mejora la velocidad de procesamiento al centrarse únicamente en el contenido traducible.

3. Cálculo de delta

El contenido que no ha cambiado no debe volver a traducirse. Lingo.dev CLI implementa un sofisticado sistema de versionado que:

  • Crea huellas digitales de contenido mediante hash SHA-256
  • Compara el contenido actual con el estado anterior almacenado en i18n.lock
  • Identifica claves de traducción nuevas, modificadas y eliminadas
  • Envía solo el delta al motor de traducción

Este enfoque incremental significa que solo pagas por lo que es nuevo o ha cambiado, no por toda tu biblioteca de contenido en cada ejecución.

Más información: Archivo de bloqueo i18n.lock

4. Localización

La localización debe ser confiable, incluso con conexiones a internet inestables o interrupciones del proveedor de LLM. En este paso, Lingo.dev CLI toma el delta y lo envía a tu backend de traducción configurado.

El CLI implementa:

  • Estrategia de reintento con retroceso exponencial para fallos de red
  • Recuperación automática de errores y guardado de progreso parcial
  • Soporte para APIs LLM directas (OpenAI, Anthropic) y Lingo.dev Engine
  • Procesamiento concurrente para múltiples idiomas de destino

Cada solicitud de traducción incluye información contextual para garantizar la consistencia y calidad en todo tu proyecto.

5. Inyección de contenido

Para mantener conjuntos de cambios limpios y revisables, Lingo.dev CLI inyecta las traducciones en las posiciones exactas donde existe el contenido fuente. Este enfoque:

  • Preserva la estructura y el formato del archivo
  • Evita conflictos innecesarios en git
  • Crea diffs mínimos y enfocados
  • Respeta tu configuración existente de Prettier si está presente

El resultado son archivos localizados que parecen elaborados a mano, listos para revisión de código y despliegue.

El flujo de trabajo completo

Estos cinco pasos suelen producir dos tipos de cambios:

  1. Archivos de localización — Actualizados con traducciones nuevas y modificadas
  2. Archivo i18n.lock — Actualizado con huellas digitales de contenido para rastrear el estado

Ambos deben ser confirmados en tu repositorio, ya sea manualmente o automáticamente a través de integraciones CI/CD.

Esta arquitectura garantiza que Lingo.dev CLI escale eficientemente desde un solo desarrollador traduciendo unas pocas cadenas hasta equipos gestionando millones de palabras en docenas de idiomas.

Próximos pasos

Ahora que comprendes cómo funciona Lingo.dev CLI internamente, puedes:

  • Únete a nuestra comunidad: Discord — Conéctate con otros desarrolladores que usan Lingo.dev CLI, comparte comentarios y obtén ayuda con tus desafíos de localización;
  • Contribuye al proyecto: Abrir issues — Lingo.dev CLI es de código abierto y acepta contribuciones. Explora issues abiertos, sugiere funcionalidades o envía pull requests para ayudar a mejorar la herramienta para todos.

¿Listo para empezar? Ejecuta npx lingo.dev@latest init para configurar tu primer proyecto.