Traduttore JSON che Preserva la Struttura | Strumento i18n Gratuito
Traduttore JSON gratuito che mantiene intatta la tua struttura. Traduci file i18n, risposte API e JSON nidificati preservando chiavi, tipi di dati e formattazione. Perfetto per app i18next e multilingua.
Traduttore di Strutture JSON
Questo strumento traduce il contenuto degli oggetti JSON mantenendo la loro struttura. Incolla il tuo JSON nel pannello di sinistra, seleziona una lingua di destinazione e visualizza l'output tradotto a destra.
L'output tradotto apparirà qui...
Come Utilizzare
- Incolla il tuo oggetto JSON nel campo JSON Sorgente.
- Seleziona la tua lingua di destinazione dal menu a tendina.
- Il JSON tradotto apparirà automaticamente nel pannello di destra.
- Fai clic sul pulsante Copia per copiare il JSON tradotto negli appunti.
Documentazione
Che cos'è un traduttore che preserva la struttura JSON?
Un traduttore che preserva la struttura JSON è uno strumento che attraversa un documento JSON e modifica solo i valori testuali al suo interno. Le chiavi degli oggetti, i numeri, i valori true/false e null rimangono esattamente come sono. Vengono modificate solo le stringhe.
Questa versione dello strumento non invia alcun testo a un servizio di traduzione. Funziona interamente nel browser. Per ogni stringa individuata, aggiunge davanti al testo originale il codice della lingua di destinazione tra parentesi quadre, per esempio [es] Hello. In questo modo uno sviluppatore può vedere in anteprima esattamente quali parti di un file JSON verrebbero tradotte e verificare che la struttura rimanga intatta durante il processo, prima di collegare un vero servizio di traduzione.
Come funziona
Lo strumento applica una regola, ripetuta a ogni livello dell'albero JSON:
- Se un valore è una stringa, aggiunge davanti il codice della lingua di destinazione tra parentesi quadre:
textdiventa[code] text. Una stringa vuota viene lasciata come"". - Se un valore è un numero, true, false o null, viene lasciato invariato.
- Se un valore è un array, la regola viene applicata a ogni elemento, nello stesso ordine.
- Se un valore è un oggetto, la regola viene applicata a ogni valore e tutte le chiavi vengono mantenute invariate.
L'intero documento non deve necessariamente essere un oggetto. Un testo JSON può essere un singolo valore qualsiasi, quindi anche un array, una stringa, un numero, true, false o null autonomo viene accettato ed elaborato secondo la stessa regola.
Lo strumento verifica innanzitutto che la sintassi del JSON di input sia valida. Se il JSON non può essere analizzato, interrompe l'elaborazione e mostra un errore invece di fare supposizioni.
Come usare lo strumento
- Incolla il JSON nel campo «Source JSON» a sinistra. Sono supportati un oggetto, un array o un singolo valore.
- Scegli una lingua di destinazione dal menu a discesa. Sono disponibili nove lingue: spagnolo, francese, tedesco, italiano, portoghese, cinese, giapponese, coreano e russo.
- Il pannello a destra si aggiorna automaticamente. Non è necessario fare clic su alcun pulsante.
- Fai clic su «Copy» per copiare il risultato negli appunti.
- Fai clic su «Clear All» per ripristinare entrambi i pannelli e ricominciare.
Esempio svolto
JSON di input:
1{
2 "app": {
3 "title": "My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": ["sale", "new"]
7 }
8}
9Con lo spagnolo (es) selezionato come lingua di destinazione, lo strumento produce:
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}
12Nota che "title" e "tags" rimangono chiavi, 2 e false restano invariati e solo i valori stringa ricevono il tag [es]. La nidificazione e l'ordine degli array sono identici a quelli dell'input.
Che cosa cambia e che cosa rimane invariato
| Elemento JSON | Risultato |
|---|---|
| Valore stringa | Riceve il prefisso [language code] |
| Numero | Invariato |
true / false | Invariato |
null | Invariato |
| Chiave dell'oggetto | Sempre invariata, anche quando la chiave si chiama letteralmente __proto__ |
| Ordine dell'array | Sempre invariato |
Stringa vuota "" | Invariato |
Questo è particolarmente importante per i file in cui la struttura ha un significato, come un file i18n (internazionalizzazione) usato da un'app web o una risposta API che il codice client legge in base al nome della chiave. Se una chiave come "welcomeMessage" cambiasse durante la traduzione, il codice che cerca welcomeMessage smetterebbe di funzionare. Questo strumento non modifica mai le chiavi, quindi qui tale rischio non si presenta.
Errori comuni
«Formato JSON non valido. Controlla l'input.» Questo messaggio appare quando il testo incollato non è un JSON valido. Le cause comuni sono una virgola mancante tra gli elementi, una virgola finale dopo l'ultimo elemento, l'uso di apici singoli invece delle virgolette doppie o un carattere speciale non preceduto da escape all'interno di una stringa. Eseguire prima l'input attraverso un validatore JSON può aiutare a individuare il punto esatto.
«Traduzione non riuscita. Riprova.» Questo è il messaggio di riserva per un errore che non è un errore di sintassi. È raro. La causa più probabile è un input così grande che il risultato formattato supererebbe il limite del browser per la lunghezza di un singolo blocco di testo. Dividere un file molto grande in parti più piccole evita il problema.
Lasciare vuoto il campo di input mostra un messaggio segnaposto e non viene considerato un errore. Anche incollare il singolo valore null non è un errore: null è un JSON valido e lo strumento restituisce null.
Perché è importante preservare la struttura
I file JSON che memorizzano le traduzioni di un'app, come en.json e fr.json, di solito devono avere chiavi identiche, affinché il codice circostante possa cercare lo stesso percorso in ogni lingua, per esempio user.profile.displayName. Lo stesso vale per le risposte API lette in base al nome del campo e per i file di configurazione, nei quali una modifica al nome di una chiave può compromettere una distribuzione. Preservare la struttura e contrassegnare le stringhe traducibili è un primo passo utile prima di inviare tali stringhe a un vero servizio di traduzione o sottoporle alla revisione di un traduttore.
Domande frequenti
Questo strumento chiama un vero servizio di traduzione? No. Funziona solo nel browser e non invia dati da nessuna parte. Contrassegna ogni stringa con il codice della lingua di destinazione invece di produrre parole tradotte.
Perché il mio output mostra [es] Hello invece di Hola?
Quel tag tra parentesi quadre è il comportamento segnaposto della versione attuale. Mostra quali stringhe verrebbero tradotte e in quale lingua, senza eseguire una traduzione reale.
Modificherà le chiavi dei miei oggetti o i numeri?
No. Le chiavi, i numeri, true/false e null rimangono invariati a ogni livello di nidificazione, anche all'interno degli array. Questo vale anche per i nomi di chiave insoliti, come __proto__, che alcuni codici JavaScript eliminano accidentalmente.
È necessaria una connessione Internet? No. L'analisi e l'aggiunta dei tag avvengono localmente nella scheda del browser.
Posso usarlo per i file di traduzione di i18next o simili? L'output mantiene la stessa struttura delle chiavi dell'input, quindi è compatibile con qualsiasi framework che richieda chiavi corrispondenti tra i file delle diverse lingue. I valori stringa devono comunque essere sostituiti con traduzioni reali prima dell'uso.
Che cosa succede con JSON profondamente nidificati o con array all'interno di array? Lo strumento elabora ogni livello, per quanto profondo, e ogni elemento degli array, applicando ogni volta la stessa regola.
Riferimenti
- RFC 8259: formato di interscambio dei dati JavaScript Object Notation (JSON), IETF: rfc-editor.org/rfc/rfc8259
- ECMA-404: sintassi di interscambio dei dati JSON, Ecma International: ecma-international.org/publications-and-standards/standards/ecma-404/
- MDN Web Docs, lavorare con JSON: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON