Die Lingo.dev CLI erkennt automatisch, wenn du Übersetzungsschlüssel umbenennst, und übernimmt bestehende Übersetzungen. Ändert sich nur der Schlüsselname, während der Quelltext unverändert bleibt, weist die CLI dem neuen Schlüssel die vorhandene Übersetzung zu – ganz ohne Neuübersetzung.
So funktioniert's#
Die CLI vergleicht Content-Fingerprints statt Schlüsselnamen. Findet sie denselben Fingerprint unter einem anderen Schlüssel, erkennt sie das als Umbenennung.
// locales/en.json (before refactoring)
{
"welcome_msg": "Welcome to our platform",
"btn_save": "Save"
}
// locales/es.json (existing translations)
{
"welcome_msg": "Bienvenido a nuestra plataforma",
"btn_save": "Guardar"
}Nachdem du die Schlüssel in der Quelldatei umbenannt hast:
// locales/en.json (after refactoring)
{
"homepage.welcome": "Welcome to our platform",
"button.save": "Save"
}Wenn du npx lingo.dev@latest run ausführst, bleiben die Übersetzungen erhalten:
// locales/es.json (translations carried forward)
{
"homepage.welcome": "Bienvenido a nuestra plataforma",
"button.save": "Guardar"
}Erkennungsregeln#
Eine Schlüsselumbenennung wird erkannt, wenn:
- sich der Schlüsselname ändert
- der Quelltext identisch bleibt
- der Schlüssel im selben Bucket vorhanden ist
Eine Schlüsselumbenennung wird nicht erkannt, wenn:
- sich Schlüssel und Inhalt gleichzeitig ändern (wird als neuer Schlüssel behandelt)
- sich nur der Inhalt ändert (wird als Inhaltsänderung behandelt und löst eine Neuübersetzung aus)
Refactoring in großem Umfang#
Die Umbenennungserkennung funktioniert in jedem Maßstab. Du kannst deine gesamte Schlüsselstruktur neu organisieren – von flachen Schlüsseln bis zu verschachtelten Namespaces – und die CLI übernimmt alle passenden Übersetzungen in einem einzigen Durchlauf.
