Neuübersetzung

Zuletzt aktualisiert: vor 2 Monaten · 3 Min. Lesezeit

lingo push übersetzt nur, was sich geändert hat: Jede Quelle wird mit dem Lockfile abgeglichen, und alles, was übereinstimmt, wird übersprungen. Das ist standardmäßig genau richtig — manchmal möchtest du Inhalte aber trotzdem neu übersetzen, obwohl der Quelltext unverändert ist: etwa nach einem Modellwechsel der Engine, nach Änderungen an ihren Regeln oder ihrem Glossar oder wenn du ein Qualitätsproblem behoben hast.

Dafür gibt es drei Möglichkeiten, die sich auch preislich unterscheiden: --key für einzelne Strings, ein Scoped --force Push für ganze Dateien oder purge gefolgt von einem normalen Push für eine ganze Sprache. Wähle am besten die kleinste Option, die genau das abdeckt, was du neu übersetzen möchtest.

Bestimmte Schlüssel neu übersetzen#

--key übersetzt nur die Schlüssel neu, die du angibst, führt sie mit der bestehenden Übersetzung zusammen und lässt alle anderen Schlüssel bytegenau unverändert. Der Quelltext-Diff wird dabei ignoriert — selbst ein String, dessen englischer Text unverändert geblieben ist, wird also neu übersetzt.

bash
lingo push --key auth.login

Wiederhole das Flag für mehrere Schlüssel:

bash
lingo push --key auth.login --key billing.plan

Ein Muster erfasst einen Schlüssel entweder exakt, als Präfix mit Abschluss an einer .-, /-, -- oder [-Grenze oder als Glob. Deshalb erfasst auth.login auch auth.login.title, aber nie auth.login_url; ein einfaches auth erfasst den gesamten auth-Teilbaum, aber nie authority. Setze Globs in Anführungszeichen, sonst erweitert deine Shell sie, bevor die CLI sie sieht:

bash
lingo push --key "auth.*"

Das ist mit großem Abstand die günstigste Option — Sie zahlen nur für die Keys, die Sie angegeben haben, und für nichts darüber hinaus. Dafür ist eine vorhandene Übersetzung nötig, in die zusammengeführt werden kann. Eine Sprache, die Sie noch nie übersetzt haben, wird daher übersprungen, mit einem Hinweis auf --backfill-missing. Einige Formate unterstützen gar keinen Key-Bereich — unter Formate sehen Sie, welche und warum.

Unter lingo push findest du das vollständige Verhalten, einschließlich dessen, was mit Schlüsseln passiert, die du nicht angegeben hast.

Scoped Push erzwingen#

--force übersetzt jedes passende Ziel neu und ignoriert dabei bestehende Übersetzungen sowie den serverseitigen Cache. Begrenze den Scope, außer du meinst wirklich das gesamte Projekt — ein bloßes lingo push --force erfasst jedes konfigurierte Muster, und nur die Bestätigungsabfrage steht noch dazwischen.

Eine Datei#

bash
lingo push content/en/landing.mdx --force

Ein Teilbaum#

bash
lingo push 'content/en/**/*.md' --force

Alles#

bash
lingo push --backfill-missing --force --yes

--force fragt vor dem Überschreiben nach; mit --yes überspringst du die Abfrage (CI). Die vollständige Flag-Referenz findest du unter lingo push.

Eine einzelne Sprache neu übersetzen#

push hat kein Flag pro Sprache. Wenn du nur eine Sprache neu erstellen willst, lösche ihre Dateien und fülle sie anschließend wieder auf:

bash
lingo purge --locale fr
lingo push --backfill-missing

purge entfernt die fr-Ziele; --backfill-missing erzeugt danach nur die fehlenden Inhalte neu — die anderen Sprachen bleiben unberührt. Das ist außerdem günstiger als --force, weil alles außer fr ein Cache-Treffer bleibt. Siehe Purge.

Kosten abschätzen, bevor du loslegst#

Jeder Push akzeptiert --estimate: Damit werden die Kosten für den Lauf geschätzt und der Vorgang beendet, ohne zu übersetzen:

bash
lingo push 'content/en/**/*.md' --force --estimate

Das lässt sich auch mit --key kombinieren, sodass du die Kosten für einen Schlüsselbereich vorab prüfen kannst:

bash
lingo push --key auth.login --estimate

Schätzungen sind heuristisch und kein verbindliches Angebot — die tatsächlichen Kosten können abweichen.

Wann du neu übersetzen solltest#

SituationAuszuführen
Quelltext geändertNichts — ein normales lingo push übernimmt das
Ein paar Strings, mit denen du nicht zufrieden bistlingo push --key auth.login --key billing.plan
Engine-Modell gewechseltlingo push <scope> --force
Aktualisierte Regeln / aktualisiertes Glossarlingo push --key <affected keys> oder lingo push <scope> --force
Schlechte Qualität in einer Sprachelingo purge --locale <code> und danach lingo push --backfill-missing
Komplett neu startenlingo push --backfill-missing --force --yes