@lingo.dev/cli
@lingo.dev/cli schickt Ihre Quellinhalte an eine Lokalisierungs-Engine, die sie serverseitig übersetzt und die Ergebnisse zurück auf die Festplatte schreibt — im selben Befehl mit --wait oder später mit lingo pull. Das ist der Ersatz für den alten npx lingo.dev-Ablauf — gleiches Projekt, aber eine grundlegend andere Architektur.
Was sich gegenüber der bisherigen CLI geändert hat#
Die bisherige CLI (npx lingo.dev run) extrahierte Strings, rief ein LLM direkt von Ihrem Rechner aus auf und schrieb die Dateien in einem Durchgang auf Ihrem Rechner. Die aktuelle CLI teilt die Arbeit in push und pull auf:
lingo pushlädt Quellen in Ihre Engine hoch, startet einen serverseitigen Workflow und wartet entweder auf den Abschluss oder kehrt sofort mit einer Run-ID zurücklingo pullholt die Ergebnisse des letzten push — funktioniert sogar, wenn Sie das Terminal während der Übersetzung geschlossen haben, solange Sie auf demselben Rechner und aus demselben Checkout pull ausführen- Ein Lockfile (
.lingo/lock.json) erfasst die zuletzt bekannte Server-Version jedes Ziels, damit die Konflikterkennung lokale Änderungen markieren kann, bevor sie überschrieben werden
Damit wird etwas möglich, was die alte CLI nicht konnte: lang laufende Übersetzungen ohne blockiertes Terminal — push ausführen, Terminal schließen und die Ergebnisse später mit pull abholen.
Auf Ergebnisse warten#
lingo push lädt die Quelldateien hoch, startet den serverseitigen Workflow und beendet sich, sobald der Lauf abgeschickt wurde — auf die Übersetzungen wartet der Befehl nicht, und er schreibt sie auch nicht. Holen Sie die Ergebnisse mit lingo pull ab oder übergeben Sie --wait (-w), um alles in einem einzigen Befehl zu erledigen.
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) blockiert, bis der Workflow abgeschlossen ist, und schreibt die Ergebnisse im selben Befehl.lingo pullhängt sich wieder an den letzten push für dieses Projekt an und lädt dessen Ergebnisse herunter — funktioniert auch, nachdem Sie das Terminal geschlossen haben. Der Laufstatus wird pro Rechner unter~/.lingo/runs/<project-hash>.jsongespeichert und über den Projektpfad zugeordnet, sodasspullauf demselben Rechner aus demselben Checkout fortgesetzt wird.
Authentifizierung: Beide Befehle lesen LINGO_API_KEY (oder --api-key oder eine lingo login-Sitzung). In CI setzen Sie LINGO_API_KEY; mehr ist nicht nötig.
push-Modi#
| Befehl | Modus | Wann |
|---|---|---|
lingo push | Inkrementell — vergleicht die Quelle mit .lingo/lock.json, übersetzt nur neue/geänderte Schlüssel in bestehende Ziele und lässt den Rest unverändert | Bei jedem Routine-Durchlauf (in CI --wait hinzufügen) |
lingo push --backfill-missing | Bootstrap — füllt Ziel-DATEIEN, die noch nicht existieren | Beim ersten push oder nach dem Hinzufügen einer neuen Sprache |
lingo push --force | Vollständige Neuübersetzung — überschreibt jedes Ziel (inkl. manueller Bearbeitungen); --yes/-y überspringt die Abfrage | Selten (z. B. nach einer Änderung am Glossar oder an der Engine) |
--backfill-missing ist ein Bootstrap-Flag. Es startet eine gezielte neue Anfrage und fügt nur vollständige Zieldateien hinzu, die noch fehlen — neu hinzugefügte Schlüssel in bereits übersetzten Dateien werden NICHT übersetzt (der Lauf meldet "already up-to-date" und der Schlüssel wird übersprungen). Für laufende Änderungen verwenden Sie einfach lingo push.
Übersetzungen von Hand bearbeiten#
Ein normales lingo push bewahrt manuelle Bearbeitungen pro Schlüssel:
- Sie bearbeiten einen Ziel-String (Quelle unverändert) → dieser String bleibt erhalten; andere Schlüssel werden weiter aktualisiert.
- Die Quelle hinter einem bearbeiteten Schlüssel ändert sich → für diesen Schlüssel wird eine neue Übersetzung erzeugt, die die manuelle Bearbeitung ersetzt.
- Ein neuer Quellschlüssel wird hinzugefügt → wird übersetzt und ergänzt, auch in Dateien mit manuellen Bearbeitungen.