JSON-Übersetzer, der Struktur beibehält | Kostenloses i18n-Tool
Kostenloser JSON-Übersetzer, der Ihre Struktur intakt lässt. Übersetzen Sie i18n-Dateien, API-Antworten und verschachtelte JSON-Dateien unter Beibehaltung von Schlüsseln, Datentypen und Formatierung. Perfekt für i18next und mehrsprachige Anwendungen.
JSON-Struktur-Erhaltender Übersetzer
Dieses Tool übersetzt den Inhalt von JSON-Objekten und behält dabei ihre Struktur bei. Fügen Sie Ihr JSON im linken Bereich ein, wählen Sie eine Zielsprache und sehen Sie die übersetzte Ausgabe auf der rechten Seite.
Übersetzte Ausgabe erscheint hier...
Anleitung
- Fügen Sie Ihr JSON-Objekt in das Quell-JSON-Feld ein.
- Wählen Sie Ihre Zielsprache aus dem Dropdown-Menü.
- Das übersetzte JSON wird automatisch im rechten Bereich angezeigt.
- Klicken Sie auf den Kopieren-Button, um das übersetzte JSON in Ihre Zwischenablage zu kopieren.
Dokumentation
Was ist ein strukturerhaltender JSON-Übersetzer?
Ein strukturerhaltender JSON-Übersetzer ist ein Werkzeug, das ein JSON-Dokument durchläuft und nur die darin enthaltenen Textwerte ändert. Objektschlüssel, Zahlen, Wahrheitswerte und null bleiben exakt erhalten. Nur die Zeichenketten werden bearbeitet.
Diese Version des Werkzeugs sendet keinen Text an einen Übersetzungsdienst. Sie läuft vollständig im Browser. Für jede gefundene Zeichenkette setzt sie den Sprachcode der Zielsprache in eckigen Klammern vor den Originaltext, zum Beispiel [es] Hello. So kann eine Entwicklerin oder ein Entwickler genau prüfen, welche Teile einer JSON-Datei übersetzt würden, und bestätigen, dass die Struktur den Vorgang unverändert übersteht, bevor ein echter Übersetzungsdienst angebunden wird.
So funktioniert es
Das Werkzeug wendet eine Regel an, die auf jeder Ebene des JSON-Baums wiederholt wird:
- Wenn ein Wert eine Zeichenkette ist, wird der Sprachcode der Zielsprache in eckigen Klammern davor gesetzt: Aus
textwird[code] text. Eine leere Zeichenkette bleibt"". - Wenn ein Wert eine Zahl, true, false oder null ist, bleibt er unverändert.
- Wenn ein Wert ein Array ist, wird diese Regel auf jedes Element in derselben Reihenfolge angewendet.
- Wenn ein Wert ein Objekt ist, wird diese Regel auf jeden Wert angewendet, und jeder Schlüssel bleibt unverändert.
Das gesamte Dokument muss kein Objekt sein. Ein JSON-Text kann aus einem einzelnen beliebigen Wert bestehen, daher werden auch ein Array, eine Zeichenkette, eine Zahl, true, false oder null als alleinstehender Wert akzeptiert und nach derselben Regel verarbeitet.
Das Werkzeug prüft zunächst, ob das Eingabe-JSON eine gültige Syntax hat. Kann das JSON nicht geparst werden, wird der Vorgang abgebrochen und ein Fehler angezeigt, statt eine Vermutung anzustellen.
So wird das Werkzeug verwendet
- JSON in das Feld „Quell-JSON“ auf der linken Seite einfügen. Ein Objekt, ein Array oder ein einzelner Wert funktionieren gleichermaßen.
- Eine Zielsprache aus dem Auswahlmenü auswählen. Neun Sprachen stehen zur Verfügung: Spanisch, Französisch, Deutsch, Italienisch, Portugiesisch, Chinesisch, Japanisch, Koreanisch und Russisch.
- Das rechte Bedienfeld wird automatisch aktualisiert. Es muss keine Schaltfläche angeklickt werden.
- Auf „Kopieren“ klicken, um das Ergebnis in die Zwischenablage zu kopieren.
- Auf „Alles löschen“ klicken, um beide Bedienfelder zurückzusetzen und von vorn zu beginnen.
Durchgerechnetes Beispiel
Eingabe-JSON:
1{
2 "app": {
3 "title": "My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": ["sale", "new"]
7 }
8}
9Wenn Spanisch (es) als Zielsprache ausgewählt ist, erzeugt das Werkzeug:
1{
2 "app": {
3 "title": "[es] My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": [
7 "[es] sale",
8 "[es] new"
9 ]
10 }
11}
12Beachten Sie, dass "title" und "tags" als Schlüssel erhalten bleiben, 2 und false unverändert bleiben und nur die Zeichenkettenwerte mit dem Tag [es] versehen werden. Die Verschachtelung und die Reihenfolge der Array-Elemente sind mit der Eingabe identisch.
Was sich ändert und was gleich bleibt
| JSON-Element | Ergebnis |
|---|---|
| Zeichenkettenwert | Erhält das Präfix [language code] |
| Zahl | Unverändert |
true / false | Unverändert |
null | Unverändert |
| Objektschlüssel | Immer unverändert, auch bei einem Schlüssel, der wörtlich __proto__ heißt |
| Reihenfolge der Array-Elemente | Immer unverändert |
Leere Zeichenkette "" | Unverändert |
Das ist besonders bei Dateien wichtig, deren Struktur eine Bedeutung trägt, etwa bei einer i18n-Datei (Internationalisierung), die von einer Webanwendung verwendet wird, oder bei einer API-Antwort, die der Client anhand von Schlüsseln ausliest. Wenn sich ein Schlüssel wie "welcomeMessage" während der Übersetzung änderte, würde Code, der welcomeMessage abfragt, nicht mehr funktionieren. Dieses Werkzeug bearbeitet niemals Schlüssel, daher besteht dieses Risiko hier nicht.
Häufige Fehler
„Ungültiges JSON-Format. Bitte überprüfen Sie Ihre Eingabe.“ Diese Meldung erscheint, wenn der eingefügte Text kein gültiges JSON ist. Typische Ursachen sind ein fehlendes Komma zwischen Einträgen, ein nachgestelltes Komma nach dem letzten Element, einfache statt doppelter Anführungszeichen oder ein nicht maskiertes Sonderzeichen innerhalb einer Zeichenkette. Wenn die Eingabe zunächst durch einen JSON-Validator geprüft wird, lässt sich die genaue Stelle leichter finden.
„Übersetzung fehlgeschlagen. Bitte versuchen Sie es erneut.“ Dies ist die Ersatzmeldung für einen Fehler, der kein Syntaxfehler ist. Er tritt selten auf. Die wahrscheinlichste Ursache ist eine Eingabe, die so groß ist, dass das formatierte Ergebnis die vom Browser vorgegebene Längenbegrenzung für ein einzelnes Textstück überschreiten würde. Eine sehr große Datei in kleinere Teile aufzuteilen, vermeidet dieses Problem.
Wenn das Eingabefeld leer bleibt, wird ein Platzhaltertext angezeigt; dies gilt nicht als Fehler. Auch das Einfügen des einzelnen Werts null ist kein Fehler: null ist gültiges JSON, und das Werkzeug gibt null zurück.
Warum die Strukturerhaltung wichtig ist
JSON-Dateien, in denen Übersetzungen einer Anwendung gespeichert sind, etwa en.json und fr.json, benötigen normalerweise identische Schlüssel, damit der umgebende Code in jeder Sprache denselben Pfad abfragen kann, zum Beispiel user.profile.displayName. Dasselbe gilt für API-Antworten, die anhand von Feldnamen ausgelesen werden, sowie für Konfigurationsdateien, bei denen eine Änderung des Schlüsselnamens eine Bereitstellung verhindern kann. Die Struktur zu erhalten und gleichzeitig übersetzbare Zeichenketten zu kennzeichnen, ist ein sinnvoller erster Schritt, bevor diese Zeichenketten an einen echten Übersetzungsdienst gesendet oder von einer Übersetzerin bzw. einem Übersetzer geprüft werden.
Häufig gestellte Fragen
Ruft dieses Werkzeug einen echten Übersetzungsdienst auf? Nein. Es läuft ausschließlich im Browser und sendet keine Daten irgendwohin. Statt übersetzte Wörter zu erzeugen, kennzeichnet es jede Zeichenkette mit dem Sprachcode der Zielsprache.
Warum zeigt meine Ausgabe [es] Hello statt Hola? Dieses Tag in eckigen Klammern ist das Platzhalterverhalten der aktuellen Version. Es zeigt, welche Zeichenketten in welche Sprache übersetzt würden, ohne eine echte Übersetzung durchzuführen.
Ändert das Werkzeug meine Objektschlüssel oder Zahlen? Nein. Schlüssel, Zahlen, true/false und null werden auf jeder Verschachtelungsebene unverändert übernommen, auch innerhalb von Arrays. Das gilt auch für ungewöhnliche Schlüsselnamen wie __proto__, die von manchem JavaScript-Code versehentlich verworfen werden.
Benötigt das Werkzeug eine Internetverbindung? Nein. Das Parsen und Kennzeichnen erfolgt lokal im Browser-Tab.
Kann ich das Werkzeug für i18next oder ähnliche Übersetzungsdateien verwenden? Die Ausgabe behält dieselbe Schlüsselstruktur wie die Eingabe bei und eignet sich daher für jedes Framework, das übereinstimmende Schlüssel in Sprachdateien erwartet. Die Zeichenkettenwerte selbst müssen vor der Verwendung noch durch echte Übersetzungen ersetzt werden.
Was geschieht bei tief verschachteltem JSON oder Arrays innerhalb von Arrays? Das Werkzeug verarbeitet jede Ebene, unabhängig von der Verschachtelungstiefe, sowie jedes Array-Element und wendet dabei jedes Mal dieselbe Regel an.
Referenzen
- RFC 8259: Das Datenaustauschformat JavaScript Object Notation (JSON), IETF: rfc-editor.org/rfc/rfc8259
- ECMA-404: Die Syntax für den JSON-Datenaustausch, Ecma International: ecma-international.org/publications-and-standards/standards/ecma-404/
- MDN Web Docs, Arbeiten mit JSON: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON