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
Cos'è un Traduttore che Preserva la Struttura JSON?
Hai mai provato a copiare JSON in Google Translate e ti sei ritrovato con chiavi danneggiate, parentesi mancanti o sintassi rovinata? Proprio questo è il problema che questo strumento risolve.
Un traduttore che preserva la struttura JSON converte i valori stringa all'interno dei tuoi oggetti JSON in un'altra lingua mantenendo tutto il resto intatto—le chiavi rimangono le stesse, i numeri restano numeri, i booleani rimangono booleani e la tua struttura nidificata non crolla.
Ecco cosa rende questo diverso dagli strumenti di traduzione regolari: quando traduci un tipico file i18n con 50+ chiavi nidificate, hai bisogno che la struttura rimanga identica in modo che il tuo codice possa ancora fare riferimento a user.profile.displayName in spagnolo, francese o giapponese. Rompi quella struttura, e sarai a fare debug per ore.
Questo strumento gestisce automaticamente l'attraversamento ricorsivo, identificando quali stringhe necessitano di traduzione e quali elementi (come chiavi API, valori di configurazione o ID numerici) dovrebbero rimanere esattamente come sono.
Come funziona la conservazione della struttura JSON
Perché la conservazione della struttura è importante
Quando si lavora con la traduzione JSON, di solito si ha a che fare con uno di questi scenari:
- File i18n dove l'app si aspetta che
en.jsonefr.jsonabbiano chiavi identiche - Risposte API che necessitano di una struttura coerente tra le lingue per l'analisi del client
- File di configurazione dove cambiare un nome di chiave interrompe l'intera applicazione
- Esportazioni di database dove le relazioni dipendono da nomi di campi specifici
La sfida: JSON non è solo testo. È un dato strutturato con uno schema su cui il codice fa affidamento. Cambiare "userName" in "nombreUsuario" durante la traduzione, e l'app genera un errore undefined.
Come funziona il processo di traduzione
Ecco cosa accade dietro le quinte quando si traduce JSON:
1. Analisi e Convalida Lo strumento convalida prima la sintassi JSON. Se manca una virgola o c'è una parentesi in eccesso, si otterrà un messaggio di errore chiaro prima che inizi qualsiasi traduzione, salvandoti dall'output corrotto.
2. Attraversamento Ricorsivo Partendo dalla radice, l'algoritmo percorre ogni nodo nell'albero JSON. Per ogni elemento, verifica il tipo di dati:
- Stringa? Accodala per la traduzione
- Numero, booleano, nullo? Saltalo completamente
- Oggetto o array? Ricorri al suo interno
3. Traduzione Type-Safe
Solo i valori stringa vengono inviati all'API di traduzione. Il tuo "quantity": 42 rimane 42, non "quarantadue". Il tuo "isActive": true rimane true, non "vero".
4. Conservazione delle Chiavi
Tutte le chiavi degli oggetti rimangono nella lingua originale. Questo è fondamentale perché translations.header.welcomeMessage deve essere lo stesso percorso in ogni file di lingua.
5. Riassemblaggio della Struttura Le stringhe tradotte vengono reinserite esattamente nelle stesse posizioni, mantenendo tutti i livelli di nidificazione, gli indici degli array e le gerarchie degli oggetti.
Un errore comune: Alcuni sviluppatori cercano di usare JSON.stringify() dell'oggetto, tradurre l'intera stringa, poi analizzarla di nuovo. Questo si rompe perché il traduttore modifica chiavi, parentesi e sintassi. L'approccio ricorsivo evita completamente questo problema.
Utilizzo del Traduttore che Preserva la Struttura JSON
Guida Passo-Passo
1. Incolla il Tuo JSON Copia il tuo oggetto JSON e incollalo nel pannello di sinistra. Lo strumento gestisce qualsiasi JSON valido—che sia un oggetto semplice con 5 chiavi o una struttura nidificata profonda con array e più livelli.
2. Seleziona la Lingua di Destinazione Scegli dalla tendina delle lingue: Spagnolo, Francese, Tedesco, Italiano, Portoghese, Cinese, Giapponese, Coreano, Russo e altro ancora. Se stai traducendo per un progetto i18next, abbina il codice lingua che il tuo framework si aspetta.
3. Ottieni la Traduzione Istantanea L'output tradotto appare automaticamente nel pannello di destra. Nessun pulsante "Traduci" necessario—elabora non appena hai un JSON valido e una lingua selezionata.
4. Copia e Utilizza Fai clic sul pulsante "Copia" per catturare il JSON tradotto. È pronto per essere incollato direttamente nel tuo progetto—nessuna pulizia richiesta.
5. Cancella per la Prossima Traduzione Premi "Cancella Tutto" quando sei pronto per tradurre un altro file. Lo strumento reimposta entrambi i pannelli istantaneamente.
Problemi Comuni e Soluzioni
Errore "Formato JSON Non Valido" Lo vedrai quando c'è un problema di sintassi. Colpevoli comuni:
- Virgola mancante tra coppie chiave-valore
- Virgola finale dopo l'ultimo elemento (valida in JavaScript, non in JSON)
- Virgolette singole invece di virgolette doppie
- Caratteri speciali non preceduti da escape nelle stringhe
Soluzione rapida: Passa il tuo JSON attraverso un validatore come JSONLint prima di incollarlo.
Traduzione Fallisce Silenziosamente Se il pannello di output rimane vuoto:
- Controlla la tua connessione internet—la traduzione richiede l'accesso API
- Verifica di aver selezionato una lingua di destinazione
- Prova con un frammento JSON più piccolo per isolare il problema
Risultati Inattesi nella Traduzione La traduzione automatica funziona bene per frasi standard ma ha difficoltà con:
- Gergo tecnico o termini specifici di un dominio
- Nomi di marchi (che dovrebbero spesso rimanere non tradotti)
- Sintassi dei segnaposto come
{{username}}o%s
Per applicazioni di produzione, usa questo strumento come primo passaggio, poi fai rivedere il contenuto specifico del dominio o rivolto al cliente da un madrelingua.
Suggerimenti Pro per Risultati Migliori
Mantieni Separate le Stringhe Tecniche Se il tuo JSON mescola testo rivolto all'utente con identificatori tecnici, considera di dividerli. Ad esempio:
1{
2 "display": {"welcome": "Bentornato"},
3 "config": {"apiKey": "abc123", "endpoint": "https://api.example.com"}
4}
5Traduci separatamente l'oggetto display per evitare di elaborare accidentalmente i valori di config.
Usa il Contesto nelle Tue Stringhe "Invia" potrebbe tradursi diversamente a seconda del contesto. "Invia modulo" o "Invia pagamento" fornisce ai traduttori (umani o macchina) un contesto migliore per una traduzione accurata.
Testa con Dati Reali Prima di tradurre l'intero file i18n con 500+ chiavi, testa con un piccolo campione che includa tutti i tuoi tipi di dati—stringhe, numeri, oggetti nidificati, array.
Esempi di Codice
Traduzione di JSON con JavaScript
1// Esempio di come potresti implementare funzionalità simili in JavaScript
2function translateJsonStructure(jsonObj, targetLanguage) {
3 // Funzione helper per tradurre una stringa
4 function translateString(str, lang) {
5 // In un'implementazione reale, questo chiamerebbe un'API di traduzione
6 return `[${lang}] ${str}`;
7 }
8
9 // Funzione ricorsiva per attraversare e tradurre JSON
10 function processNode(node) {
11 if (node === null) return null;
12
13 if (typeof node === 'string') {
14 return translateString(node, targetLanguage);
15 }
16
17 if (Array.isArray(node)) {
18 return node.map(item => processNode(item));
19 }
20
21 if (typeof node === 'object') {
22 const result = {};
23 for (const key in node) {
24 result[key] = processNode(node[key]);
25 }
26 return result;
27 }
28
29 // Restituisce numeri, booleani, ecc. invariati
30 return node;
31 }
32
33 return processNode(jsonObj);
34}
35
36// Esempio di utilizzo
37const sourceJson = {
38 "product": {
39 "name": "Cuffie Wireless",
40 "description": "Cuffie wireless di alta qualità con cancellazione del rumore",
41 "features": ["Bluetooth 5.0", "Durata batteria 40 ore", "Design pieghevole"],
42 "price": 99.99,
43 "inStock": true
44 }
45};
46
47const translatedJson = translateJsonStructure(sourceJson, "es");
48console.log(JSON.stringify(translatedJson, null, 2));
49Traduzione di JSON con Python
1import json
2
3def translate_json_structure(json_obj, target_language):
4 """
5 Traduce i valori stringa in un oggetto JSON mantenendo la struttura.
6
7 Args:
8 json_obj: L'oggetto JSON analizzato
9 target_language: Codice lingua di destinazione (es. 'es', 'fr')
10
11 Returns:
12 Oggetto JSON tradotto con struttura preservata
13 """
14 def translate_string(text, lang):
15 # In un'implementazione reale, questo chiamerebbe un'API di traduzione
16 return f"[{lang}] {text}"
17
18 def process_node(node):
19 if node is None:
20 return None
21
22 if isinstance(node, str):
23 return translate_string(node, target_language)
24
25 if isinstance(node, list):
26 return [process_node(item) for item in node]
27
28 if isinstance(node, dict):
29 result = {}
30 for key, value in node.items():
31 result[key] = process_node(value)
32 return result
33
34 # Restituisce numeri, booleani, ecc. invariati
35 return node
36
37 return process_node(json_obj)
38
39# Esempio di utilizzo
40source_json = {
41 "user": {
42 "name": "Jane Smith",
43 "bio": "Sviluppatore software e contributore open source",
44 "skills": ["JavaScript", "Python", "React"],
45 "active": True,
46 "followers": 245
47 }
48}
49
50translated_json = translate_json_structure(source_json, "fr")
51print(json.dumps(translated_json, indent=2))
52Traduzione di JSON con PHP
1<?php
2/**
3 * Traduce la struttura JSON preservando la struttura originale
4 *
5 * @param mixed $jsonObj L'oggetto JSON analizzato
6 * @param string $targetLanguage Il codice lingua di destinazione
7 * @return mixed L'oggetto JSON tradotto
8 */
9function translateJsonStructure($jsonObj, $targetLanguage) {
10 // Funzione helper per tradurre una stringa
11 function translateString($text, $lang) {
12 // In un'implementazione reale, questo chiamerebbe un'API di traduzione
13 return "[$lang] $text";
14 }
15
16 // Funzione ricorsiva per elaborare ogni nodo
17 function processNode($node, $lang) {
18 if ($node === null) {
19 return null;
20 }
21
22 if (is_string($node)) {
23 return translateString($node, $lang);
24 }
25
26 if (is_array($node)) {
27 // Controlla se è un array associativo (oggetto) o indicizzato
28 if (array_keys($node) !== range(0, count($node) - 1)) {
29 // Array associativo (oggetto)
30 $result = [];
31 foreach ($node as $key => $value) {
32 $result[$key] = processNode($value, $lang);
33 }
34 return $result;
35 } else {
36 // Array indicizzato
37 return array_map(function($item) use ($lang) {
38 return processNode($item, $lang);
39 }, $node);
40 }
41 }
42
43 // Restituisce numeri, booleani, ecc. invariati
44 return $node;
45 }
46
47 return processNode($jsonObj, $targetLanguage);
48}
49
50// Esempio di utilizzo
51$sourceJson = [
52 "company" => [
53 "name" => "Global Tech Solutions",
54 "description" => "Azienda innovativa di sviluppo software",
55 "founded" => 2010,
56 "services" => ["Sviluppo Web", "App Mobile", "Soluzioni Cloud"],
57 "active" => true
58 ]
59];
60
61$translatedJson = translateJsonStructure($sourceJson, "de");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64Casi d'Uso nel Mondo Reale
File i18n per Applicazioni Web
La maggior parte dei framework moderni come Next.js, React o Vue memorizzano le traduzioni in formato JSON. Quando è necessario aggiungere una nuova lingua all'app, ci si trova di fronte a una scelta: copiare e incollare manualmente e tradurre ogni chiave (con rischi di errori), oppure utilizzare questo strumento per generare una bozza iniziale in pochi minuti.
Uno scenario reale: La tua app ha en.json con oltre 200 chiavi di traduzione in categorie nidificate—navigazione, form, messaggi di errore, tooltip. Hai bisogno di versioni in francese e tedesco per il prossimo sprint.
Input (en.json):
1{
2 "common": {
3 "welcome": "Welcome to our application",
4 "login": "Log in",
5 "signup": "Sign up",
6 "errorMessages": {
7 "required": "This field is required",
8 "invalidEmail": "Please enter a valid email address"
9 }
10 }
11}
12Traduci in francese, ottieni fr.json con struttura identica. Il tuo codice continua a fare riferimento a t('common.errorMessages.required') senza modifiche.
Ciò che ho trovato funziona bene: Genera traduzioni con questo strumento, poi fai controllare a un membro del team bilingue i termini tecnici e le etichette dei pulsanti. Questo permette di intercettare casi in cui "Invia" potrebbe necessitare di traduzioni diverse per "Invia modulo" vs "Invia pagamento."
Localizzazione delle Risposte API
Stai costruendo un'API che serve più paesi? Hai bisogno di strutture di risposta coerenti tra le lingue. Un'API di notifiche potrebbe restituire:
1{
2 "status": "success",
3 "notification": {
4 "title": "Order Shipped",
5 "message": "Your order #12345 has been shipped",
6 "priority": 1,
7 "timestamp": 1678901234
8 }
9}
10La tua app mobile analizza notification.title e notification.message. Se la traduzione francese cambia la struttura delle chiavi, l'app si interromperà per gli utenti francesi.
Questo strumento garantisce che notification.title rimanga notification.title in ogni lingua, modificando solo i valori delle stringhe. Il codice client funziona in modo identico in tutte le impostazioni locali.
Una limitazione da notare: La traduzione automatica non comprende il tuo dominio. "Spedito" nel contesto dell'e-commerce potrebbe tradursi diversamente rispetto a un contesto logistico o marittimo. Per le API rivolte ai clienti, rivedi l'output prima di distribuirlo.
Traduzione Contenuti CMS Headless
Piattaforme CMS headless come Contentful o Strapi esportano spesso i contenuti come JSON. Quando hai 50 post blog con metadati strutturati (autore, tag, URL immagini in evidenza, date di pubblicazione), vuoi tradurre il corpo e il titolo senza modificare i metadati.
Un'esportazione tipica include sia stringhe di contenuto che configurazione:
- Contenuto: corpo dell'articolo, titolo, estratto
- Struttura: ID autori, percorsi immagini, slug categorie, timestamp
La traduzione manuale rischia di modificare uno slug da tecnologia a tecnología, interrompendo il routing. La traduzione che preserva la struttura gestisce solo i campi di contenuto.
File di Configurazione per Deployment Multi-Regione
Distribuzione in più regioni? I tuoi file di configurazione potrebbero necessitare di stringhe localizzate mantenendo endpoint, credenziali e flag di funzionalità identici:
1{
2 "region": "eu-west",
3 "welcomeMessage": "Welcome to our service",
4 "endpoint": "https://api.eu.example.com",
5 "retryAttempts": 3,
6 "features": {"darkMode": true}
7}
8Traduci welcomeMessage in tedesco lasciando endpoint, retryAttempts e features invariati.
Confronto degli Approcci di Traduzione
| Metodo | Migliore Per | Velocità | Accuratezza | Sicurezza Struttura | Costo |
|---|---|---|---|---|---|
| Questo Strumento | Generazione rapida di file i18n, prototipi, strumenti interni | Istantaneo | Buono per contenuti standard | 100% preservata | Gratuito |
| Google Translate (copia/incolla) | Singole frasi, testo non tecnico | Istantaneo | Variabile | Interrompe JSON | Gratuito |
| Traduzione Professionale | Contenuti rivolti al cliente, documenti legali, marketing | Giorni | Eccellente | Lavoro manuale necessario | $0.08-0.15/parola |
| Sistemi di Gestione Traduzioni (Lokalise, Phrase) | App aziendali, flussi di lavoro collaborativi | Ore-Giorni | Eccellente con revisione | Supporto JSON integrato | $$$+ |
Quando utilizzare questo strumento: Progetti in fase iniziale, generazione di bozze per la revisione, applicazioni interne dove la traduzione perfetta non è critica.
Quando investire in traduzione professionale: Contenuti rivolti al cliente, testi legali/di conformità, messaggistica del brand, o quando la sfumatura culturale conta più della velocità.
Considerazioni Tecniche e Casi Limite
Cosa Viene Tradotto (e Cosa No)
Lo strumento utilizza il controllo dei tipi per determinare cosa tradurre:
✅ Tradotto:
- Valori stringa:
"Welcome"→"Benvenuto" - Stringhe in array:
["Hello", "World"]→["Ciao", "Mondo"] - Stringhe a qualsiasi livello di annidamento
❌ Non Tradotto:
- Numeri:
42,3.14,-10rimangono invariati - Booleani:
trueefalserimangono invariati - Null:
nullrimanenull - Chiavi degli oggetti:
"userName"come chiave rimane"userName" - Stringhe vuote:
""rimane""
Gestione di Caratteri Speciali
Unicode ed Emoji Lo strumento gestisce correttamente UTF-8, quindi emoji e caratteri non latini funzionano bene:
1{"greeting": "👋 Hello"}
2Tradotto in italiano come:
1{"greeting": "👋 Ciao"}
2Sequenze di Escape
Le sequenze di escape JSON (\n, \t, \") vengono preservate:
1{"message": "Line 1\nLine 2"}
2Il \n rimane intatto durante la traduzione.
Segnaposto
Ecco un potenziale problema: se le tue stringhe contengono segnaposto come {username} o %s, potrebbero essere tradotti o riordinati. In lingue come arabo o ebraico con testo da destra a sinistra, le posizioni dei segnaposto possono spostarsi. Rivedili attentamente.
Prestazioni JSON di Grandi Dimensioni
Lo strumento basato sul web gestisce file i18n tipici (sotto 500KB) senza problemi. Per set di dati più grandi:
- 500KB - 2MB: Funziona ma può essere lento nel browser
- Oltre 2MB: Considera di suddividere in parti logiche (ad esempio, file separati per funzionalità o sezione)
La memoria del browser è il fattore limitante, non l'algoritmo stesso.
Domande frequenti
In che modo questo differisce dall'incollare JSON in Google Translate?
Google Translate tratta JSON come testo normale, il che significa che cerca di tradurre tutto, compresi chiavi, caratteri di sintassi e valori numerici. Otterrai un output come:
1{ "nom d'utilisateur": "Jean Dupont", "âge": "vingt-cinq" }
2Nota come "username" sia diventato "nom d'utilisateur" e il numero 25 sia diventato la stringa "vingt-cinq"? Il tuo codice si romperebbe immediatamente.
Questo strumento comprende la struttura JSON e traduce solo i valori stringa, lasciando intatte le chiavi e gli altri tipi di dati.
Gestirà JSON con nidificazioni profonde e array?
Sì. L'algoritmo ricorsivo elabora ogni livello di nidificazione:
1{
2 "users": [
3 {"name": "John", "roles": ["admin", "editor"]},
4 {"name": "Jane", "roles": ["viewer"]}
5 ]
6}
7Traduce tutti i valori stringa ("John", "Jane", "admin", "editor", "viewer") mantenendo esattamente la struttura.
Cosa succede se il mio JSON contiene sia contenuto in inglese che già tradotto?
Lo strumento traduce tutte le stringhe che trova, anche se alcune sono già nella lingua di destinazione. Se stai aggiungendo nuove chiavi a un file di traduzione esistente, traduci solo la nuova sezione separatamente, poi unisci i risultati.
Posso usarlo per file i18next o react-intl?
Assolutamente. La struttura di output corrisponde a quella che questi framework si aspettano. Un file JSON i18next come:
1{"translation": {"welcome": "Hello", "goodbye": "Goodbye"}}
2Diventa:
1{"translation": {"welcome": "Hola", "goodbye": "Adiós"}}
2Le tue chiamate t('translation.welcome') rimangono invariate.
Quanto è accurata la traduzione automatica per contenuti tecnici?
Dipende dal contesto:
- Testo UI generico: "Salva", "Annulla", "Invia" → Generalmente accurato
- Gergo tecnico: "webhook", "OAuth2", "idempotente" → Potrebbe essere mal tradotto o lasciato invariato
- Termini specifici di un dominio: "cartella paziente" (medico) vs "paziente" (pazienza) → Contesto spesso mancante
Per app di produzione, usalo come primo passaggio, poi fai rivedere termini tecnici e specifici del dominio.
Cosa succede per lingue con set di caratteri diversi (Cinese, Arabo, Russo)?
Lo strumento gestisce correttamente Unicode, quindi tutti i set di caratteri funzionano. Una cosa da controllare: Arabo e Ebraico sono da destra a sinistra (RTL), il che può influenzare l'aspetto dei segnaposto nelle stringhe tradotte. La struttura JSON rimane corretta, ma rivedi il testo tradotto per la leggibilità.
Manterrà la mia formattazione (indentazione, interruzioni di riga)?
L'output è JSON valido, ma la formattazione (spazi, indentazione) può differire dall'input. Se hai bisogno di una formattazione specifica, passa l'output attraverso un formattatore JSON con le tue impostazioni preferite.
Posso tradurre valori di configurazione come URL o chiavi API?
Lo strumento traduce tutte le stringhe, inclusi URL e valori di configurazione. Per evitarlo:
- Dividi il tuo JSON in contenuto per l'utente e configurazione
- Traduci solo la sezione di contenuto
- Mantieni la configurazione non tradotta
Meglio ancora, struttura i tuoi file per separare il contenuto traducibile dai valori tecnici fin dall'inizio.
È gratuito? Ci sono limiti di utilizzo?
Lo strumento web è gratuito per l'uso tipico. Volumi molto elevati di traduzione (centinaia di file al minuto) potrebbero raggiungere i limiti del servizio di traduzione sottostante. Per la maggior parte dei flussi di lavoro di sviluppo, non incontrerai limiti.
Riferimenti e ulteriori letture
Per una comprensione più approfondita della struttura JSON, degli standard di internazionalizzazione e delle migliori pratiche:
-
ECMA-404: La sintassi di interscambio dati JSON - La specifica ufficiale JSON di Ecma International che definisce il formato standard: ecma-international.org/publications-and-standards/standards/ecma-404/
-
MDN Web Docs: Lavorare con JSON - Guida completa di Mozilla per l'analisi, la conversione in stringa e la struttura JSON: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON
-
Attività di internazionalizzazione W3C (i18n) - Standard e migliori pratiche per l'internazionalizzazione web: w3.org/International/
-
RFC 8259: Il formato di interscambio dati JSON - Specifica IETF per la sintassi e la semantica JSON: datatracker.ietf.org/doc/html/rfc8259
Inizia a Tradurre i Tuoi File JSON
Hai bisogno di generare rapidamente file di traduzione per la tua applicazione multilingua? Incolla il tuo JSON, seleziona una lingua di destinazione e ottieni traduzioni che preservano la struttura in modo istantaneo. Funziona con i18next, react-intl, vue-i18n e qualsiasi framework che richieda una struttura JSON coerente tra le lingue.
Inizia la traduzione ora: