i18n.lock ist eine Lockfile, die SHA-256-Fingerprints Ihrer Quellinhalte speichert. Die Lingo.dev CLI vergleicht diese Fingerprints bei jedem Lauf, um zu erkennen, welche Strings neu oder geändert sind – nur diese gelangen in die Übersetzungspipeline. Alles andere wird übersprungen.
Struktur#
Die Lockfile verwendet das YAML-Format:
version: 1
checksums:
a07974ea09011daa56f9df706530e442:
title: f8692d39317193acf0e2e47172703c46
description: g9703e40428204bdf1f3f58283814d57| Feld | Beschreibung |
|---|---|
version | Version des Lockfile-Schemas. |
checksums | Zuordnung von Content-Fingerprints. Jeder Eintrag ordnet einen Hash des Quellinhalts einem Schlüssel-Hash zu. |
Die Dual-Hash-Struktur (Content-Hash + Schlüssel-Hash) ermöglicht die Erkennung von Schlüsselumbenennungen – die CLI behält bestehende Übersetzungen bei, wenn ein Schlüssel umbenannt wird, der Inhalt aber gleich bleibt.
Workflow#
Erster Lauf – erstellt die Lockfile mit Fingerprints für alle Quellinhalte:
npx lingo.dev@latest run
# Creates i18n.lockWeitere Läufe – übersetzen nur das Delta:
npx lingo.dev@latest run
# Compares against i18n.lock, translates only changesNeuübersetzung erzwingen – umgeht die Lockfile und übersetzt alles erneut:
npx lingo.dev@latest run --forceLockfile neu erstellen – erstellt die Lockfile aus dem aktuellen Stand Ihrer Quelldateien neu:
npx lingo.dev@latest lockfile --forceVerwenden Sie lockfile --force, um die Lockfile bei der Auflösung von Merge-Konflikten zurückzusetzen. Die Ausführung ist jederzeit sicher.
Frozen Verification – schlägt fehl, wenn Inhalte übersetzt werden müssen (für CI/CD konzipiert):
npx lingo.dev@latest run --frozenDeduplizierung#
Beim Zusammenführen von Branches kann die Lockfile-YAML doppelte Einträge ansammeln. Die CLI dedupliziert sie bei jedem Laden automatisch – doppelte Schlüssel innerhalb desselben Prüfsummenblocks werden aufgelöst, indem das letzte Vorkommen beibehalten wird. Wenn Duplikate entfernt werden, protokolliert die CLI deren Anzahl.
Die Deduplizierung läuft bei allen Befehlen, die die Lockfile lesen: run, status, lockfile und weiteren.
Versionskontrolle#
i18n.lock muss zusammen mit Ihren Sprachdateien in Ihr Repository eingecheckt werden. Sie ist der Mechanismus, der inkrementelle Übersetzungen möglich macht – ohne sie würde bei jedem Lauf das gesamte Projekt neu übersetzt.
