Envía archivos fuente al motor, espera a que termine la ejecución y escribe las salidas en disco.
lingo push [patterns...] [--force] [--backfill-missing] [--yes]Comportamiento predeterminado — push delta#
Sin argumentos, lingo push ejecuta el modo solo delta:
- Calcula el hash de cada archivo fuente que coincida con los patrones
filesde la configuración - Compara cada hash con el lockfile para detectar qué fuentes cambiaron
- Sube las fuentes modificadas como una ejecución al motor
- Espera a que termine la ejecución
- Escribe las salidas en disco
- Guarda los nuevos hashes de origen en el lockfile
Si ninguna fuente cambió desde el último push exitoso, el comando termina de inmediato con ✓ Nothing to push. — sin ida y vuelta al servidor, sin consumo de tokens.
Argumentos y flags#
Posicional: patterns... — push con alcance#
lingo push docs/en/about.md
lingo push 'docs/en/**/*.md' 'locales/en.json'Restringe el push a archivos específicos (deben coincidir con patrones ya definidos en .lingo/config.json). Cambia el comando al modo con alcance:
- No compara con la fuente anterior: toda fuente coincidente se considera dentro del alcance, incluso si no cambió.
- Noop del lado del servidor para los targets que ya existen con hashes de origen coincidentes: el motor los omite y la CLI los reporta como en caché.
Úsalo cuando quieras traducir exactamente un archivo actualizado sin volver a calcular el hash de todo el proyecto, o cuando quieras retraducir una sola página con --force.
--force / -f#
lingo push docs/en/about.md --forceRetraduce cada target coincidente, ignorando cualquier traducción existente y omitiendo la caché del lado del servidor. Requiere un alcance — ya sea patrones posicionales o --backfill-missing. lingo push --force por sí solo se rechaza porque retraduciría todo el proyecto.
De forma predeterminada, --force pide confirmación antes de ejecutarse:
! --force will retranslate every target for pattern(s): docs/en/about.md and
overwrite existing translations. Continue? (Yes, retranslate / Cancel)Pasa --yes / -y para omitir la confirmación (ideal para CI).
--backfill-missing#
lingo push --backfill-missingTraduce cada target que todavía no existe en todos los patrones configurados. Equivale a un push con alcance sobre todos los patrones de la configuración, pero solo genera archivos donde faltan. Úsalo después de agregar un nuevo idioma a targetLocales, o en el primer push de un proyecto nuevo.
Combínalo con --force para retraducir todo desde cero:
lingo push --backfill-missing --force --yes--yes / -y#
Omite la confirmación de --force. No tiene efecto sin --force.
Salida#
Si todo sale bien:
Pushing source files to localization engine…
✓ Run run_a8c...: localized 12 target file(s), 4 already up-to-date, uploaded 1 new artifact(s).El resumen se desglosa así:
- N archivo(s) target localizados — el motor generó traducciones nuevas y la CLI las escribió.
- N ya actualizados — aciertos de caché del lado del servidor (la fuente coincidió y se reutilizó el target).
- Se subieron N artifact(s) nuevos — fuentes que el motor no había visto antes (contenido binario o de gran tamaño que se almacena una vez y luego se referencia).
- N target(s) omitidos (ediciones locales) — los hashes de target locales difieren del lockfile. Vuelve a ejecutar con
--forcepara sobrescribirlos.
Si falla algún target, la CLI imprime el error de cada uno y termina con un código distinto de cero — útil para CI:
✓ Run run_a8c...: localized 10 target file(s).
2 target(s) failed:
locales/de.json: rate limit on engine; retry later
locales/fr.json: timeoutSemántica de reintento#
El lockfile se actualiza solo después de una ejecución completamente exitosa. Un fallo parcial (por ejemplo, si un idioma supera el tiempo de espera) deja los hashes de origen sin cambios en el lockfile, así que el siguiente lingo push reintenta el mismo diff — sin necesidad de restablecer nada manualmente.
Si el motor falla antes de que ocurra cualquier traducción (auth, validación), no se escribe nada y el lockfile no cambia.
Patrones comunes#
CI: traducir al hacer merge#
- run: lingo push --backfill-missing --yes
- run: git add . && git commit -m "chore: refresh translations" && git push--backfill-missing es la opción segura por defecto: no sobrescribe nada, solo completa lo que falta.
Iteración en un solo archivo#
lingo push docs/en/onboarding.md -f -yRetraduce solo una fuente después de un cambio importante en el copy. Omite la confirmación para iterar más rápido.
Agregar un nuevo idioma#
Después de actualizar targetLocales en .lingo/config.json:
lingo push --backfill-missingTraduce todo el corpus al nuevo idioma sin retraducir los que ya existen.
