Cómo funciona
Lingo.dev CLI encapsula un 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 i18n
, el 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, cargá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 archivo
2. Limpieza de datos
No todo el contenido requiere traducción. Las aplicaciones de producción contienen números, booleanos, fechas, UUIDs y fragmentos de código que típicamente permanecen sin cambios en todos los idiomas.
Lingo.dev CLI filtra inteligentemente:
- Valores numéricos como
42
o3.14
- Valores booleanos (
true
/false
) - Fechas ISO y marcas de tiempo
- UUIDs 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 enfocarse solo en contenido traducible.
3. Cálculo de delta
El contenido que no ha cambiado no debería ser retraducido. Lingo.dev CLI implementa un sofisticado sistema de versionado que:
- Crea huellas digitales del contenido utilizando 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 su backend de traducción configurado.
La CLI implementa:
- Estrategia de reintentos con retroceso exponencial para fallos de red
- Recuperación automática de errores y guardado de progreso parcial
- Soporte tanto para APIs de LLM sin procesar (OpenAI, Anthropic) como para 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 su proyecto.
5. Inyección de contenido
Para mantener conjuntos de cambios limpios y revisables, Lingo.dev CLI inyecta traducciones en las posiciones exactas donde existe el contenido fuente. Este enfoque:
- Preserva la estructura y el formato del archivo
- Evita conflictos innecesarios de git
- Crea diferencias mínimas y enfocadas
- Respeta su configuración existente de Prettier si está presente
El resultado son archivos localizados que parecen haber sido elaborados manualmente, listos para revisión de código y despliegue.
El flujo de trabajo completo
Estos cinco pasos típicamente producen dos tipos de cambios:
- Archivos de localización — Actualizados con traducciones nuevas y modificadas
- Archivo i18n.lock — Actualizado con huellas digitales de contenido para seguimiento del estado
Ambos deben ser confirmados en tu repositorio, ya sea manualmente o automáticamente a través de integraciones CI/CD.
Esta arquitectura asegura que Lingo.dev CLI escale eficientemente desde un solo desarrollador traduciendo algunas cadenas hasta equipos gestionando millones de palabras en docenas de idiomas.
Próximos pasos
Ahora que comprende cómo funciona internamente Lingo.dev CLI, puede:
- Unirse a nuestra comunidad: Discord — Conéctese con otros desarrolladores que utilizan Lingo.dev CLI, comparta comentarios y obtenga ayuda con sus desafíos de localización;
- Contribuir al proyecto: Abrir issues — Lingo.dev CLI es de código abierto y acepta contribuciones. Explore los issues abiertos, sugiera funcionalidades o envíe pull requests para ayudar a mejorar la herramienta para todos.