Traduzione JSON

Traduci i file di localizzazione JSON senza modificare le tue chiavi.

Le chiavi restano chiavi. L'annidamento resta intatto. Vengono tradotti solo i valori stringa — e solo i valori stringa. Ogni altro tipo di proprietà viene restituito esattamente come inviato.

Chiavi
sempre preservate
Annidati
oggetti gestiti ricorsivamente
36
lingue di output per richiesta
100K
token gratuiti / mese

Gli strumenti di traduzione standard non comprendono JSON.

Le API di traduzione generiche vedono il tuo JSON come un muro di testo. Traducono i nomi delle chiavi insieme ai valori. Appiattiscono gli oggetti annidati. Concatenano stringhe che non dovrebbero. Ciò che torna è un JSON strutturalmente rotto che richiede correzioni manuali prima di poter essere utilizzato. Se mantieni file di localizzazione per un'applicazione in produzione, sai che inserirli in un'API di traduzione standard crea più lavoro di quanto ne risparmi.

Il problema è più profondo dei soli nomi delle chiavi. Le API di traduzione standard alterano anche le variabili di interpolazione. Una stringa come "Hello {name}, you have {count} messages" torna con i nomi delle variabili tradotti — "Hola {nombre}, tienes {cuenta} mensajes" — il che rompe ogni runtime che si aspettava il nome originale della variabile. Seguono ore di debug.

Per i team che mantengono file di localizzazione in più lingue per un'applicazione in produzione, questo non è un problema teorico. È già successo. La domanda è quanto dura ogni volta il processo di riparazione manuale.

PolyLingo attraversa il tuo JSON prima di tradurre.

PolyLingo comprende la struttura JSON. Attraversa ricorsivamente il tuo oggetto, identifica i valori stringa che contengono testo traducibile e invia solo quei valori al modello di traduzione. I nomi delle chiavi non vengono mai modificati. Numeri, booleani, valori null e tipi non stringa vengono passati senza modifiche. L'output è un JSON valido con struttura identica — solo con valori stringa tradotti.

Le variabili di interpolazione — {name}, {{count}}, %s e schemi simili — sono identificate e preservate durante tutto il processo di traduzione. Vengono sostituite con segnaposto prima della traduzione e reinserite nella loro forma originale nell'output. Il modello di traduzione non le vede mai come testo traducibile.

Gli array sono gestiti correttamente: ogni elemento stringa è tradotto, mentre gli indici numerici e la struttura dell'array restano invariati. Gli array misti contenenti sia stringhe che non stringhe (numeri, oggetti) sono attraversati correttamente con i tipi non stringa passati senza modifiche.

Input — file di localizzazione JSON piatto (Inglese)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
Output — Francese (chiavi identiche)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
Input — file di localizzazione JSON annidato (Inglese)
{
  "nav": {
    "home": "Home",
    "pricing": "Pricing",
    "blog": "Blog"
  },
  "hero": {
    "title": "Grow your audience globally",
    "subtitle": "Translate in seconds.",
    "cta": "Get started for free"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong"
  }
}
Output — Spagnolo (struttura intatta)
{
  "nav": {
    "home": "Inicio",
    "pricing": "Precios",
    "blog": "Blog"
  },
  "hero": {
    "title": "Expande tu audiencia globalmente",
    "subtitle": "Traduce en segundos.",
    "cta": "Comienza gratis"
  },
  "errors": {
    "notFound": "Página no encontrada",
    "serverError": "Algo salió mal"
  }
}
Richiesta API — traduci in 5 lingue in una chiamata
curl -X POST https://api.usepolylingo.com/v1/translate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
    "format": "json",
    "targets": ["es", "fr", "de", "ja", "zh"],
    "model": "standard"
  }'

# Response:
# {
#   "translations": {
#     "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
#     "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
#     ...
#   }
# }

Cosa garantisce PolyLingo per ogni traduzione JSON

  • Nomi delle chiavi mai modificati
  • Oggetti annidati e array gestiti ricorsivamente
  • Numeri, booleani, valori null passati senza modifiche
  • Tutte le 36 lingue in una singola richiesta
  • Rilevamento automatico come JSON — nessun flag di formato richiesto
  • Funziona con file di localizzazione piatti e profondamente annidati
  • Variabili di interpolazione ({name}, {{count}}, %s) preservate esattamente
  • L'output è JSON valido — analizzabile senza modifiche

Tre passaggi per file di localizzazione tradotti

1

Incolla il tuo JSON o chiama l'API

Usa il traduttore no-code per traduzioni una tantum: incolla il tuo JSON, scegli le lingue, scarica i file tradotti. Per l'automazione, chiama POST /v1/translate con il contenuto JSON e i codici lingua di destinazione.

2

Ricevi tutte le lingue in una risposta

L'API restituisce un oggetto JSON con una voce per ogni lingua di destinazione, ciascuna contenente il file di localizzazione completamente tradotto con struttura identica. Nessuna chiamata per lingua. Nessun ciclo. Una richiesta per tutti gli output.

3

Inserisci gli output nella tua directory dei messaggi

Scrivi ogni file tradotto in messages/es.json, messages/fr.json, messages/de.json — o dove la tua libreria i18n li aspetta. La struttura è identica al file sorgente, quindi non serve ulteriore elaborazione.

Dove la traduzione JSON conta di più

🌐

i18n app con next-intl o i18next

Traduci direttamente i tuoi file messages/*.json o locales/*.json. Le chiavi restano intatte, l'annidamento è preservato e le variabili di interpolazione passano senza modifiche. Inserisci i file nella directory dei messaggi e distribuisci.

🗄️

Esportazioni di contenuti CMS

Le piattaforme CMS headless spesso esportano contenuti strutturati come JSON. PolyLingo traduce i valori stringa preservando i nomi dei campi, i tipi di contenuto annidati e i valori non stringa come date, booleani e ID.

⚙️

Risposte API e file di configurazione

Qualsiasi struttura JSON con valori stringa traducibili — descrizioni prodotto, modelli di notifica, testi in-app serviti via API — può essere tradotta senza modificare la struttura da cui dipende la tua applicazione.

Domande frequenti sulla traduzione JSON

Le variabili di interpolazione come {name} o {{count}} sono preservate?

Sì. PolyLingo identifica i pattern comuni di interpolazione inclusi {variabile}, {{variabile}}, %(variabile)s e %s prima della traduzione. Questi vengono sostituiti con segnaposto stabili, il testo circostante viene tradotto e i nomi originali delle variabili sono reinseriti nell'output. Il modello di traduzione non vede mai i nomi delle variabili come contenuto traducibile.

Cosa succede ai valori non stringa — numeri, booleani, null?

I valori non stringa vengono passati completamente invariati. PolyLingo traduce solo i valori stringa che contengono testo in linguaggio naturale. Numeri, booleani, valori null e array di non stringhe sono preservati esattamente come appaiono nella sorgente.

PolyLingo può gestire strutture JSON profondamente annidate?

Sì. PolyLingo attraversa ricorsivamente oggetti di qualsiasi profondità di annidamento. La traduzione si applica a tutti i valori stringa in tutta la struttura, indipendentemente da quanto siano profondamente annidati.

Cosa succede se alcune chiavi contengono contenuti non traducibili come slug o codici?

PolyLingo traduce tutti i valori stringa per impostazione predefinita. Se hai campi stringa che non devono essere tradotti — slug, codici lingua, identificatori tecnici — l'approccio consigliato è escluderli dal JSON che invii o usare il parametro di formato esplicito e specificare i campi da saltare (in arrivo). Per la maggior parte dei file di localizzazione, tutti i valori stringa sono destinati a essere tradotti.

Funziona con JSON5 o JSONC (JSON con commenti)?

Attualmente PolyLingo elabora JSON standard. JSON5 e JSONC (con commenti) devono essere preprocessati per rimuovere i commenti e convertiti in JSON standard prima dell'invio. Questo è un passaggio comune nelle pipeline di build e aggiunge un overhead minimo.

Quante lingue posso targettare in una singola richiesta?

Fino a tutte le 36 lingue supportate in una singola richiesta. La risposta contiene un oggetto JSON tradotto per ogni codice lingua. I limiti di velocità variano in base al piano — il piano gratuito consente 10 richieste al minuto, mentre i piani Growth e Scale consentono da 200 a 600 richieste al minuto.

Traduci i tuoi file di localizzazione in pochi secondi.

Incolla il tuo JSON, scegli le lingue, ricevi file di localizzazione validi per ogni lingua di destinazione.

Inizia a tradurre gratis

Incolla il tuo JSON di localizzazione e vedi l'output — gratis, senza account.

Traduci i file di localizzazione JSON senza modificare le chiavi — PolyLingo | PolyLingo