Zum Inhalt springen

i18n Schlüsseldiff

Vergleichen Sie zwei Lokalisierungs-JSON-Dateien und listen Sie die jeweils fehlenden Übersetzungsschlüssel auf.

Eingabe
JSON B (übersetzte Datei)
Ausgabe

i18n Schlüsseldiff

Fügen Sie Ihre Basislokalisierungsdatei als JSON A und die übersetzte Datei als JSON B ein, und dieses Tool reduziert beide Schlüsselpfade in Punktnotation – „nav.home“, „errors.notFound“ – und meldet dann genau, wo sie voneinander abweichen. Es wurde für den Moment erstellt, in dem eine Übersetzungsdatei hinter ihrer Quelle zurückbleibt: Ein neuer Bildschirm liefert eine Handvoll Zeichenfolgen, jemand bearbeitet die englische Kopie direkt oder ein Gebietsschema wurde vor Monaten maschinell übersetzt und nie wieder aufgerufen.

Wählen Sie aus, was gemeldet werden soll: fehlende Schlüssel in B (zur Quelle hinzugefügt, aber nie übersetzt), fehlende Schlüssel in A (übrig gebliebene Zeichenfolgen, die eine inzwischen entfernte Funktion hinterlassen hat) oder beides gleichzeitig. Ein vierter Modus, „unübersetzt“, listet Schlüssel auf, die in beiden Dateien mit Byte-identischen Werten vorhanden sind – ein starkes Signal, dass eine Zeichenfolge kopiert und nicht übersetzt wurde, da eine echte Übersetzung nur durch Zufall mit der Quelle übereinstimmt. Verschachtelte Objekte werden rekursiv durchlaufen, unabhängig davon, wie tief die Datei ist.

Die Ausgabe erfolgt als einfache Liste, ein Pfad pro Zeile oder als JSON, bereit zur Eingabe in ein Skript oder eine CI-Prüfung, die einen Build fehlschlägt, wenn die Übersetzungen abweichen. Die Zählung über der Ausgabe zeigt immer das vollständige Bild, unabhängig davon, welcher Berichtsmodus ausgewählt ist – wie viele Schlüssel sind in A, wie viele sind in B und wie viele fehlen auf beiden Seiten – sodass Sie Abweichungen mit einem Blick erkennen können, bevor Sie die Details lesen. Ungültiges JSON in einer der Dateien wird namentlich gemeldet, wobei die eigene Meldung des Parsers zitiert wird, sodass Sie sofort wissen, welche Datei repariert werden muss.

Alles läuft lokal in Ihrem Browser: Beide Dateien werden auf Ihrem Gerät analysiert und verglichen und nie irgendwohin hochgeladen, was wichtig ist, da Lokalisierungsdateien vor dem Start häufig unveröffentlichte Funktionsnamen und interne Terminologie enthalten. Verwenden Sie es, um die Pull-Anfrage eines Übersetzers zu überprüfen, ein Gebietsschema vor einer Veröffentlichung zu prüfen oder jede Zeichenfolge zu finden, die ein Refactor stillschweigend gelöscht hat.

Häufige Fragen

Was gilt als „Schlüssel“ für den Vergleich?
Jeder Blattwert im JSON, der durch seinen vollständigen Punktpfad adressiert wird – ein verschachteltes Objekt wie {"nav":{"home":"Home"}} erzeugt den Schlüssel „nav.home“. Arrays werden als ganze Werte verglichen und nicht in indizierte Schlüssel aufgeteilt.
Was erkennt der „unübersetzte“ Modus eigentlich?
Schlüssel, die in beiden Dateien mit identischem Wert vorhanden sind. Es markiert wahrscheinlich nicht übersetzte Zeichenfolgen, aber es wird auch ein kurzer Wert angezeigt, der in beiden Sprachen rechtmäßig gleich ist (ein Markenname, eine Zahl) – betrachten Sie ihn als zu überprüfenden Hinweis und nicht als garantierten Fehlschlag.
Was passiert, wenn ein Schlüssel ein Objekt in einer Datei und eine einfache Zeichenfolge in der anderen enthält?
Jede Seite wird unabhängig abgeflacht, sodass auf natürliche Weise eine Nichtübereinstimmung auftritt: Die eigenen verschachtelten Schlüssel des Objekts scheinen auf der Zeichenfolgenseite zu fehlen, und der Schlüssel der Zeichenfolge scheint auf der Objektseite zu fehlen.
Gibt es eine Begrenzung der Dateigröße?
Es gibt keine feste Begrenzung über die Ausgabeobergrenze von 10 MB hinaus, die die meisten Tools gemeinsam haben. Die Verarbeitung erfolgt auf Ihrem Gerät, sodass selbst große Kataloge mit Tausenden von Schlüsseln in Millisekunden verglichen werden.
Werden meine Lokalisierungsdateien irgendwo hochgeladen?
Nein. Sowohl JSON A als auch JSON B werden vollständig in Ihrem Browser analysiert und verglichen – keine der Dateien verlässt Ihr Gerät.