JSON-Datei übersetzen
Senden Sie en.json und erhalten Sie de.json mit denselben Schlüsseln, derselben Verschachtelung und nur übersetztem Text zurück; ein Wert wie 3 oder true bleibt unverändert. Platzhalter wie {{username}} stehen an ihrem Platz, die neue Datei passt sofort in Ihre App.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Gedacht für Entwicklerinnen und Entwickler, die eine Ressourcendatei um eine weitere Sprache ergänzen, ohne jeden Eintrag von Hand zu übertragen.
Warum die Schlüssel nie verändert werden dürfen
Eine Sprachdatei ist ein Vertrag: Die Schlüssel sind das Vokabular des Codes, die Werte das, was Menschen lesen. Wer en.json an ein Übersetzungsbüro gibt und die Datei drei Tage später mit einem umbenannten verschachtelten Schlüssel oder einer umsortierten Liste zurückbekommt, erlebt, wie die App am fehlenden Schlüssel scheitert – oft erst, wenn ein Bildschirm bei den Nutzern leer bleibt. Hier gelten die Schlüssel als feste Kennungen, und nur die Texte werden übersetzt: Die Struktur, die Sie senden, ist genau die, die Sie zurückbekommen.
Was übersetzt wird und was unverändert bleibt
Texte werden übersetzt, verschachtelte Objekte bis in die letzte Ebene durchlaufen, sodass eine Datei mit Abschnitten für Schaltflächen, Fehlermeldungen und Einführung vollständig übersetzt wird, ohne die Struktur zu verflachen. Zahlen, Wahrheitswerte, leere Werte und Listen ohne Text passieren unverändert. Platzhalter wie {{username}} oder %s bleiben genau an ihrer Stelle, nur der Satz drumherum wechselt die Sprache. Genau das ist der typische Fehler beim Übersetzen von Hand: Ein beschädigter Platzhalter fällt nicht beim Übersetzen auf, sondern erst, wenn der Bildschirm angezeigt wird.
Was übersetzt wird
Übersetzt werden ausschließlich Werte vom Typ Zeichenkette; Zahlen, Boolesche Werte, Arrays mit technischen Codes und die Schlüssel selbst bleiben unverändert. Die Struktur der Datei bleibt dabei Zeichen für Zeichen erhalten, sodass sie sich ohne Anpassung wieder in dieselbe Anwendung laden lässt. Ein Array mit technischen Codes, etwa Ländercodes oder Statuswerten, wird als solches erkannt und ebenfalls nicht angerührt.
Platzhalter bleiben stehen
Platzhalter innerhalb eines Wertes, etwa {name} oder %s, werden erkannt und unverändert an derselben Stelle im übersetzten Text belassen, damit eine Anwendung, die zur Laufzeit Werte einsetzt, nicht bricht. Eine einzelne Fett- oder Kursiv-Auszeichnung innerhalb eines Wertes wird ebenso respektiert wie in einer reinen HTML-Datei, sodass keine Formatierung verloren geht. Auch Zeilenumbrüche innerhalb eines mehrzeiligen Wertes bleiben an derselben Stelle stehen, statt beim Übersetzen zu verrutschen.
Preis
Leere oder rein technische Werte, die nicht übersetzt werden müssen, lassen sich vorab aus der Datei entfernen, um die Kosten zu senken. Der genaue Betrag wird vor dem Absenden angezeigt, abhängig von der Anzahl der tatsächlich übersetzten Zeichenketten-Werte in der Datei.
Nutzung
Für HTML-Dateien oder reinen Fließtext eignen sich die jeweiligen Schwesterwerkzeuge besser als das Einfügen von strukturierten Daten. Bei einer mehrsprachigen App lässt sich derselbe Ablauf für jede weitere Zielsprache mit einer eigenen Anfrage wiederholen.
Anwendungsfälle
Die App-Sprachdatei um Französisch ergänzen
Ein Entwicklerteam bei Schneider IT-Systeme GmbH & Co. KG ergänzt die bestehende Ressourcendatei einer internen App um eine französische Fassung, ohne jeden der rund 150 Einträge von Hand zu übersetzen.
Häufige Fragen
Bleiben die Schlüssel garantiert unverändert?
Ja, nur die Werte vom Typ Zeichenkette werden übersetzt; Schlüssel, Zahlen, Boolesche Werte und die Struktur der Datei bleiben exakt erhalten.
Was passiert mit Platzhaltern wie {name}?
Sie werden erkannt und unverändert an derselben Stelle im übersetzten Wert belassen, damit eine Anwendung sie weiterhin korrekt einsetzen kann.
Wird die hochgeladene Datei gespeichert?
Nein, sie wird zur Übersetzung verarbeitet und danach nicht aufbewahrt; ein Konto, in dem Dateien abgelegt würden, ist nicht erforderlich.
Kann ich nur einzelne Schlüssel übersetzen lassen?
Ja. Geben Sie die gewünschten Schlüssel an, dann werden nur deren Texte übersetzt. Das ist praktisch, wenn seit dem letzten Release nur wenige Texte neu hinzugekommen oder geändert worden sind.
Werden Zahlen und Wahrheitswerte mitübersetzt?
Nein. Zahlen, Wahrheitswerte wie true und false, leere Werte und Listen ohne Text bleiben unverändert, denn eine Wartezeit von 3000 Millisekunden bedeutet in jeder Sprache dasselbe. Übersetzt werden nur die Texte.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/translate/json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"json":{"greeting":"Hola"},"target_lang":"en"}'const res = await fetch("https://api.kit.forhosting.com/translate/json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"json": {
"greeting": "Hola"
},
"target_lang": "en"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/translate/json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"json": {
"greeting": "Hola"
},
"target_lang": "en"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/translate/json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"json":{"greeting":"Hola"},"target_lang":"en"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"json":{"greeting":"Hola"},"target_lang":"en"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/translate/json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"json": {
"greeting": "Hola"
},
"target_lang": "en"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "translate.json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_tokens | 20000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |
Technische Hinweise
Dieses Werkzeug übersetzt die Werte einer JSON-Datei – etwa eine Sprachdatei einer App oder Website – in eine andere Sprache und lässt Schlüssel, Verschachtelung und Datentypen unangetastet.
Was übersetzt wird
Der Schlüssel welcome_message bleibt exakt gleich, nur sein Wert wechselt von Hallo zu Hello.
Preis
$0.003 pro Anfrage plus $0.0135 je übersetztem Schlüssel. Eine Sprachdatei mit 200 Einträgen kostet damit rund $2,70 zuzüglich der Grundgebühr – deutlich weniger als die gleiche Arbeit von Hand.
Nutzung
Die Datei wird auf dieser Seite hochgeladen oder eingefügt und als vollständige JSON-Datei zurückgegeben, oder über die API in eine bestehende Build-Pipeline eingebunden, etwa um bei jedem Release automatisch eine neue Sprache zu ergänzen.
Integrationsbeispiele
Die Website-Texte um eine neue Sprache erweitern
Vor dem Start in den Niederlanden lässt Lukas Fischer die JSON-Datei mit den Oberflächentexten seiner Website übersetzen und bindet sie unmittelbar in die bestehende Struktur ein.
Fehlermeldungen einer Schnittstelle konsistent übersetzen
Ein Backend-Team übersetzt die JSON-Datei mit den Fehlermeldungen einer internen Schnittstelle, damit Nutzer in mehreren Ländern dieselbe Meldung in ihrer eigenen Sprache sehen.
Technische Fragen
Wie wird der Preis pro Schlüssel berechnet?
$0.003 pro Anfrage plus $0.0135 je übersetztem Schlüssel mit Zeichenketten-Wert; leere oder rein technische Werte zählen nicht mit.
Wie viele Schlüssel lassen sich auf einmal übersetzen?
Rund 20.000 Token pro Anfrage; für sehr umfangreiche Sprachdateien lässt sich die Übersetzung in mehreren Anfragen aufteilen.
Funktioniert das auch mit verschachtelten JSON-Strukturen?
Ja, auch mehrfach verschachtelte Objekte und Arrays werden korrekt durchlaufen, ohne dass sich die Struktur der Datei verändert.