JSON-vertaler die structuur behoudt | Gratis i18n-hulpmiddel
Gratis JSON-vertaler die uw structuur intact houdt. Vertaal i18n-bestanden, API-reacties en geneste JSON terwijl sleutels, gegevenstypen en opmaak behouden blijven. Perfect voor i18next en meertalige apps.
JSON-structuur Behoudende Vertaler
Deze tool vertaalt de inhoud van JSON-objecten terwijl de structuur behouden blijft. Plak uw JSON in het linker paneel, selecteer een doeltaal, en bekijk de vertaalde uitvoer aan de rechterkant.
Vertaalde uitvoer verschijnt hier...
Hoe te gebruiken
- Plak uw JSON-object in het Bron JSON-veld.
- Selecteer uw doeltaal in het dropdown-menu.
- De vertaalde JSON verschijnt automatisch in het rechter paneel.
- Klik op de Kopiëren-knop om de vertaalde JSON naar uw klembord te kopiëren.
Documentatie
Wat is een structuurbehoudende JSON-vertaler?
Een structuurbehoudende JSON-vertaler is een hulpmiddel dat een JSON-document doorloopt en alleen de tekstwaarden daarin wijzigt. Objectsleutels, getallen, true/false-waarden en null-waarden blijven precies zoals ze waren. Alleen de tekenreeksen worden aangepast.
Deze versie van het hulpmiddel stuurt geen tekst naar een vertaaldienst. Het werkt volledig in de browser. Voor elke tekenreeks die het vindt, voegt het de code van de doeltaal tussen vierkante haken vóór de oorspronkelijke tekst toe, bijvoorbeeld [es] Hello. Zo kan een ontwikkelaar precies bekijken welke delen van een JSON-bestand zouden worden vertaald en bevestigen dat de structuur het proces doorstaat, voordat er een echte vertaaldienst wordt gekoppeld.
Hoe het werkt
Het hulpmiddel past één regel toe, op elk niveau van de JSON-boom:
- Als een waarde een tekenreeks is, voeg je de code van de doeltaal tussen vierkante haken ervoor toe:
textwordt[code] text. Een lege tekenreeks blijft"". - Als een waarde een getal, true, false of null is, blijft deze ongewijzigd.
- Als een waarde een array is, pas je deze regel toe op elk item, in dezelfde volgorde.
- Als een waarde een object is, pas je deze regel toe op elke waarde en laat je elke sleutel ongewijzigd.
Het hele document hoeft geen object te zijn. Een JSON-tekst kan elke afzonderlijke waarde zijn. Ook een array, een tekenreeks, een getal, true, false of null op zichzelf wordt dus geaccepteerd en volgens dezelfde regel verwerkt.
Het hulpmiddel controleert eerst of de invoer-JSON een geldige syntaxis heeft. Als de JSON niet kan worden geparseerd, stopt het en wordt er een foutmelding weergegeven in plaats van te gokken.
Het hulpmiddel gebruiken
- Plak JSON in het veld ‘Bron-JSON’ aan de linkerkant. Een object, een array of één afzonderlijke waarde: ze werken allemaal.
- Kies een doeltaal in het vervolgkeuzemenu. Er zijn negen talen beschikbaar: Spaans, Frans, Duits, Italiaans, Portugees, Chinees, Japans, Koreaans en Russisch.
- Het rechterpaneel wordt automatisch bijgewerkt. Er hoeft geen knop te worden aangeklikt.
- Klik op ‘Kopiëren’ om het resultaat naar het klembord te kopiëren.
- Klik op ‘Alles wissen’ om beide panelen te resetten en opnieuw te beginnen.
Uitgewerkt voorbeeld
Invoer-JSON:
1{
2 "app": {
3 "title": "My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": ["sale", "new"]
7 }
8}
9Wanneer Spaans (es) als doeltaal is geselecteerd, produceert het hulpmiddel:
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}
12Let op: "title" en "tags" blijven sleutels, 2 en false blijven ongewijzigd en alleen de tekenreekswaarden krijgen de tag [es]. De geneste structuur en de volgorde van de arrays zijn identiek aan die van de invoer.
Wat verandert en wat hetzelfde blijft
| JSON-element | Resultaat |
|---|---|
| Tekenreekswaarde | Krijgt het voorvoegsel [language code] |
| Getal | Ongewijzigd |
true / false | Ongewijzigd |
null | Ongewijzigd |
| Objectsleutel | Altijd ongewijzigd, ook als een sleutel letterlijk __proto__ heet |
| Volgorde van arrays | Altijd ongewijzigd |
Lege tekenreeks "" | Ongewijzigd |
Dit is vooral van belang voor bestanden waarin de structuur betekenis draagt, zoals een i18n-bestand (internationalisatiebestand) dat door een webapp wordt gebruikt, of een API-respons die clientcode op sleutels uitleest. Als een sleutel zoals "welcomeMessage" tijdens het vertalen zou veranderen, zou code die welcomeMessage opzoekt niet meer werken. Dit hulpmiddel raakt sleutels nooit aan, dus dat risico doet zich hier niet voor.
Veelvoorkomende fouten
"Ongeldige JSON-indeling. Controleer je invoer." Dit verschijnt wanneer de geplakte tekst geen geldige JSON is. Veelvoorkomende oorzaken zijn een ontbrekende komma tussen items, een afsluitende komma na het laatste item, enkele aanhalingstekens in plaats van dubbele aanhalingstekens of een niet-geëscapet speciaal teken in een tekenreeks. De invoer eerst door een JSON-validator halen kan helpen de exacte locatie te vinden.
"Vertaling mislukt. Probeer het opnieuw." Dit is het terugvalbericht voor een fout die geen syntaxisfout is. Dit komt zelden voor. De waarschijnlijkste oorzaak is een invoer die zo groot is dat het opgemaakte resultaat de limiet van de browser voor de lengte van één tekstgedeelte zou overschrijden. Door een zeer groot bestand in kleinere delen op te splitsen, voorkom je dit.
Als het invoerveld leeg blijft, wordt een tijdelijke tekst weergegeven en wordt dit niet als een fout beschouwd. Het plakken van de afzonderlijke waarde null is evenmin een fout: null is geldige JSON en het hulpmiddel retourneert null.
Waarom structuurbehoud van belang is
JSON-bestanden waarin appvertalingen worden opgeslagen, zoals en.json en fr.json, hebben doorgaans identieke sleutels nodig, zodat de omringende code in elke taal hetzelfde pad kan opzoeken, bijvoorbeeld user.profile.displayName. Hetzelfde geldt voor API-antwoorden die op basis van veldnaam worden uitgelezen en voor configuratiebestanden waarin een wijziging van een sleutelnaam een implementatie kan verstoren. Het behouden van de structuur bij het markeren van vertaalbare tekenreeksen is een nuttige eerste stap voordat die tekenreeksen naar een echte vertaaldienst worden gestuurd of door een vertaler worden nagekeken.
Veelgestelde vragen
Maakt dit hulpmiddel gebruik van een echte vertaaldienst? Nee. Het werkt alleen in de browser en verstuurt geen gegevens. Het markeert elke tekenreeks met de code van de doeltaal in plaats van vertaalde woorden te produceren.
Waarom toont mijn uitvoer [es] Hello in plaats van Hola?
Die tag tussen vierkante haken is de manier waarop de huidige versie tijdelijke aanduidingen gebruikt. Hiermee wordt aangegeven welke tekenreeksen naar welke taal zouden worden vertaald, zonder daadwerkelijk te vertalen.
Verandert het mijn objectsleutels of getallen?
Nee. Sleutels, getallen, true/false en null worden op elk niveau van de nesting ongewijzigd doorgelaten, ook binnen arrays. Dit geldt ook voor ongebruikelijke sleutelnamen, zoals __proto__, die sommige JavaScript-code per ongeluk verwijdert.
Is een internetverbinding nodig? Nee. Het parsen en markeren gebeurt lokaal in het tabblad van de browser.
Kan ik dit gebruiken voor i18next- of vergelijkbare vertaalbestanden? De uitvoer behoudt dezelfde sleutelstructuur als de invoer en past dus bij elk framework dat overeenkomende sleutels in taalbestanden verwacht. De tekenreekswaarden zelf moeten vóór gebruik nog door echte vertalingen worden vervangen.
Wat gebeurt er met diep geneste JSON of arrays binnen arrays? Het hulpmiddel verwerkt elk niveau, hoe diep ook, en elk array-item en past telkens dezelfde regel toe.
Referenties
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format, IETF: rfc-editor.org/rfc/rfc8259
- ECMA-404: The JSON Data Interchange Syntax, Ecma International: ecma-international.org/publications-and-standards/standards/ecma-404/
- MDN Web Docs, Werken met JSON: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON