@lingo.dev/cli

Mis à jour le : il y a 4 jours · 3 min de lecture

@lingo.dev/cli envoie votre contenu source à un moteur de localisation, qui le traduit côté serveur puis réécrit les résultats sur le disque — dans la même commande avec --wait, ou plus tard avec lingo pull. C'est ce qui remplace l'ancien flux npx lingo.dev — même projet, architecture radicalement différente.

Ce qui change par rapport à l'ancien CLI#

L'ancien CLI (npx lingo.dev run) extrayait les chaînes, appelait un LLM directement depuis votre machine, puis écrivait les fichiers en une seule passe, localement. Le CLI actuel sépare le travail entre push et pull :

  • lingo push téléverse les sources vers votre moteur, lance un workflow côté serveur, puis soit attend la fin du traitement, soit renvoie immédiatement un ID d'exécution
  • lingo pull récupère les résultats du push le plus récent — même si vous avez fermé le terminal en plein milieu de la traduction, à condition d'exécuter le pull sur la même machine, depuis le même checkout
  • Un lockfile (.lingo/lock.json) conserve la dernière version serveur connue de chaque cible, afin que la détection des conflits puisse signaler les modifications locales avant qu'elles ne soient écrasées

Cela rend possible ce que l'ancienne CLI ne permettait pas : des traductions longues sans laisser un terminal bloqué — faites un push, fermez le terminal, puis récupérez les résultats plus tard.

Attendre les résultats#

lingo push téléverse les sources, lance le workflow côté serveur, puis se ferme dès que l'exécution est soumise — sans attendre les traductions ni les écrire. Récupérez les résultats avec lingo pull, ou ajoutez --wait (-w) pour tout faire en une seule commande.

bash
lingo push            # submit the run and exit (default)
lingo pull            # later: re-attach to the most recent push and download its outputs

lingo push --wait     # submit, wait, and write outputs in one command
  • --wait (-w) bloque jusqu'à la fin du workflow et écrit les résultats dans la même commande.
  • lingo pull se reconnecte au push le plus récent de ce projet et en télécharge les résultats — même après avoir fermé le terminal. L'état de l'exécution est enregistré par machine dans ~/.lingo/runs/<project-hash>.json, avec le chemin du projet comme clé, donc pull reprend sur la même machine, depuis le même checkout.

Authentification : les deux commandes lisent LINGO_API_KEY (ou --api-key, ou une session lingo login). En CI, définissez simplement LINGO_API_KEY ; rien d'autre n'est nécessaire.

Modes de push#

CommandeModeQuand
lingo pushIncrémentiel — compare la source à .lingo/lock.json, traduit uniquement les clés nouvelles ou modifiées dans les cibles existantes, et préserve le resteChaque exécution courante (ajoutez --wait dans CI)
lingo push --backfill-missingInitialisation — remplit les FICHIERS cibles qui n'existent pas encorePremier push, ou après l'ajout d'une nouvelle langue
lingo push --forceRetraduction complète — écrase chaque cible (y compris les modifications manuelles) ; --yes/-y ignore l'inviteRarement (par ex. après un changement de glossaire ou de moteur)

--backfill-missing est un flag d'initialisation. Il lance une nouvelle requête ciblée et n'ajoute que les fichiers cibles entiers manquants — il NE traduit PAS les clés nouvellement ajoutées dans des fichiers déjà traduits (l'exécution indique "already up-to-date" et la clé est ignorée). Pour les mises à jour continues, utilisez simplement lingo push.

Modifier les traductions à la main#

Un lingo push classique préserve les modifications manuelles, clé par clé :

  • Modifiez une chaîne cible (sans changer sa source) → cette chaîne est conservée ; les autres clés continuent d'être mises à jour.
  • La source associée à une clé modifiée change → une nouvelle traduction est générée pour cette clé, en remplacement de la modification manuelle.
  • Une nouvelle clé source est ajoutée → elle est traduite et ajoutée, même dans les fichiers contenant des modifications manuelles.

Dans cette section#

Démarrage rapide
Installez, authentifiez-vous, liez votre projet à un moteur, puis lancez votre premier push et pull.
Configuration
`.lingo/config.json`, `.lingo/lock.json` et l'état d'exécution propre à chaque machine dans `~/.lingo/runs/<hash>.json`.
lingo push
Envoyez les sources et lancez une traduction — ajoutez `--wait` pour écrire les résultats dans la même commande. Modèles ciblés, `--force`, logique de nouvelle tentative.
lingo pull
Récupérez les résultats du dernier push — d'une session de terminal à l'autre, sur la même machine. Détection des conflits.
Autres commandes
login, logout, link, unlink, whoami — les commandes de configuration et d'identité.