Kostenloses Werkzeug

Übersetzungs-CSV in JSON umwandeln

Agenturen und Fachabteilungen arbeiten in Excel. Der Build braucht JSON. Das hier ist der Weg hin und zurück, und er überlebt einen Zeilenumbruch in der Zelle.

Läuft im Browser. Kein Konto, kein Upload, nichts verlässt den Rechner.

CSVJSON

Läuft im Browser. Die Datei wird nicht hochgeladen.

Die Kopfzeile lesen, nicht die Spaltenreihenfolge

Eine Tabelle, die durch eine Übersetzungsagentur gelaufen ist, kommt nie mit den Spalten zurück, die man losgeschickt hat. Es gibt jetzt eine Statusspalte, oder eine Spalte mit Notizen des Übersetzers, oder die Reihenfolge hat sich geändert. Deshalb fragt dieser Leser die Kopfzeile statt Positionen zu zählen: key oder id für den Schlüssel, und den ersten Treffer aus value, target, translation, source für den Text. Ohne key-Spalte bricht er ab, statt zu raten. Bei einer Tabelle, deren erste Spalte eine laufende Nummer ist, käme sonst eine Sprachdatei mit den Schlüsseln 1, 2 und 3 heraus.

Was heil bleibt

Umwandeln ist einfach. Die Datei nicht zu zerlegen ist die Arbeit.

Jeder Konverter, der eine Sprachdatei als Fließtext behandelt, liefert irgendwann einen Absturz aus. An diesen drei Stellen passiert es.

Platzhalter bleiben Platzhalter
%@, %lld, %1$s, {name} und {{count}} kommen genau so heraus, wie sie hineingegangen sind. Ein Platzhalter, der maskiert, umnummeriert oder übersetzt wurde, ist kein Schönheitsfehler, sondern ein Absturz auf dem Gerät.
Pluralformen bleiben getrennt
Xcodes variations, das plurals-Element von Android und msgstr[n] aus Gettext meinen dasselbe und schreiben es alle anders. Hier werden sie aufeinander abgebildet, statt zu einer Zeichenkette zusammenzufallen. Polnisch hat vier Formen; alle vier überleben.
Schlüssel behalten ihre Form
Verschachtelung, Punktpfade, Felder und Übersetzerhinweise gehen mit, wo das Zielformat einen Platz dafür hat. Wo nicht, steht es im Abschnitt darunter.

Was nicht mitkommt

Steht hier, weil man es sonst erst im kaputten Build erfährt.

Heraus kommen nur zwei Spalten: key und value, dazu comment, wenn ein Eintrag einen hat. Eine Statusspalte, eine Wortzahl oder ein Prüfername, den die Agentur ergänzt hat, wird überlesen und nicht erhalten. Alles andere überlebt, auch Zeilenumbrüche und Trennzeichen in Zellen mit Anführungszeichen.

So läuft es

  1. Schritt 1

    Datei hineingeben

    CSV auf das linke Feld ziehen, über den Knopf auswählen oder den Text einfügen. Nichts wird hochgeladen. Die Umwandlung läuft in diesem Tab.

  2. Schritt 2

    Ergebnis lesen

    Das JSON steht da, während getippt wird. Der Zähler unter dem Feld sagt, wie viele Schlüssel durchgekommen sind. Eine Datei, die die Hälfte verloren hat, sieht man sofort.

  3. Schritt 3

    Kopieren oder herunterladen

    Text in die Zwischenablage, oder als Datei mit der richtigen Endung. Der Pfeil in der Mitte dreht die Richtung um.

Eine Sprachdatei rein. 64 Sprachen raus.

Ein Format umzuwandeln ist der Teil, den man von Hand machen kann. 3.627 Schlüssel in 64 Sprachen zu übersetzen, ohne einen einzigen Platzhalter zu zerlegen, ist der Teil, den man nicht von Hand macht. Beim nächsten Release zahlt man nur für die Strings, die sich geändert haben.

19 € im Monat inkl. MwSt., monatlich kündbar.

Fragen

Welche Spaltennamen erkennt es?
key oder id für den Schlüssel. Für den Text: value, target, translation oder source, in dieser Rangfolge, denn eine ausgefüllte Übersetzungsspalte gewinnt immer über den Ausgangstext. Für Hinweise: comment oder note.
Öffnet die CSV in deutschem Excel richtig?
Die Datei wird mit BOM geschrieben, damit Excel sie als UTF-8 liest und nicht als Windows-1252. Ohne BOM kommt aus Größe ein Größe. Semikolon-getrennte Dateien werden beim Lesen automatisch erkannt.
Was, wenn in einer Übersetzung ein Komma oder ein Umbruch steht?
Wird beachtet. Der Leser verfolgt den Anführungszeichen-Zustand über die ganze Datei, statt an Zeilenumbrüchen zu zerteilen. Genau daran zerbrechen selbstgebaute CSV-Leser: Eine mehrzeilige Übersetzung würde sonst jede folgende Zeile um eins verschieben.
Kann ich die Datei einem Übersetzer schicken?
Dafür ist die Richtung da. Das eigene JSON nach CSV wandeln, die Tabelle verschicken, mit ausgefüllter value-Spalte zurückbekommen, zurück nach JSON wandeln.