Traduci un file i18n JSON con chiavi, segnaposto e plurali intatti
Carica en.json (o più file di namespace) e ricevi es.json con le stesse chiavi annidate, lo stesso ordine e la stessa indentazione. Vengono tradotti solo i valori e in ogni stringa viene controllato ogni {name}, {{count}} e plurale ICU. Le prime stringhe sono gratis e senza registrazione; il lavoro completo, fino a 5,000 stringhe, costa $5, con pagamento una tantum.
- Le chiavi e la loro struttura non vengono mai tradotte; array, numeri e booleani restano come sono
- Segnaposto controllati: {name}, {{count}}, %s, :attribute, $t(key), @:key
- I plurali ICU mantengono la loro struttura e ricevono le categorie richieste dalla lingua di destinazione
- Flutter ARB: @metadata mantenuti e usati come contesto, @@locale aggiornato
- File con il nome della lingua: en.json diventa es.json, app_en.arb diventa app_es.arb
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
Giallo: segnaposto e sintassi plurale ICU, controllati in ogni stringa. Verde acqua: tag, caratteri di escape ed emoji, mantenuti come sono.
Stesse chiavi. Stessi segnaposto. Nuova lingua.
Cambiano solo i valori. Il file torna con la stessa struttura e lo stesso ordine, con il nome es.json, e ogni stringa che perde un segnaposto viene rigenerata prima di arrivare alla tua build.
App demo inventata per questa pagina; le stringhe in spagnolo sono risultati reali dello strumento, da un file di 85 stringhe.
Cosa viene tradotto e cosa no
Ogni valore di tipo stringa viene inviato alla traduzione insieme alla chiave completa come contesto, così "settings.save" e "cart.save" possono tornare con parole diverse. Le chiavi non vengono mai inviate. I valori che non sono testo, come un URL, un indirizzo email o un valore composto solo da segnaposto come "{count}", restano invariati.
I tag rich-text usati da react-intl e librerie simili, come <b>{name}</b> o <link>Undo</link>, vengono sostituiti da marcatori prima della traduzione e rimessi al loro posto dopo. Anche le sequenze letterali \n e le emoji devono sopravvivere: una stringa che ne perde anche solo una viene tradotta di nuovo e, se fallisce due volte, resta l'inglese e la chiave ti viene segnalata in un elenco.
Plurali
Un messaggio ICU come {count, plural, one {# trail} other {# trails}} viene tradotto come un'unica stringa. Al traduttore viene indicato quali categorie di plurale usa la lingua di destinazione, per esempio one, few, many e other per russo o polacco, e il risultato viene controllato per verificare che mantenga il nome della variabile e la parola chiave del plurale. I file i18next che usano chiavi separate come trail_one e trail_other vengono tradotti chiave per chiave; le chiavi mancanti per la lingua di destinazione (trail_few, trail_many) non vengono aggiunte.
Come funziona lo strumento, quanto costa e come vengono gestiti i tuoi file lo trovi nella pagina Traduci file di localizzazione; i prezzi di ogni strumento sono nella pagina prezzi.
Ultimo aggiornamento:
Domande e risposte
L'output manterrà la mia formattazione?
Sì. L'indentazione (due spazi, quattro spazi o tabulazioni), l'ordine delle chiavi, lo spazio dopo i due punti e l'a capo finale vengono copiati dal tuo file. Un file minificato resta su una sola riga.
Posso caricare più file di namespace insieme?
Sì, fino a 20 file in un solo lavoro, per esempio common.json, cart.json ed errors.json. Li scarichi tutti insieme in un unico ZIP.
E le stringhe che non vanno tradotte?
Inserisci i nomi di prodotti e marchi sotto "Non tradurre mai": in ogni stringa che ne contiene uno viene verificato che sia rimasto. I valori che sono solo un URL, un indirizzo email o dei segnaposto vengono saltati automaticamente.
Quanto costa?
Le prime stringhe sono gratis. Il lavoro completo, fino a 5,000 stringhe, costa $5, con pagamento una tantum. Unlimited copre fino a 15,000 stringhe per lavoro. I lavori piccoli fanno eccezione: un lavoro fino a 300 stringhe è gratis per intero, download inclusi.