Traduttore di file di localizzazione
Traduci i file di localizzazione della tua app con chiavi e placeholder intatti
Carica i tuoi file JSON, PO, strings.xml, .strings, .xcstrings o XLIFF, scegli una lingua e ricevi gli stessi file tradotti, pronti da inserire nel progetto. Chiavi, commenti, ordine e formattazione restano esattamente come erano, e ogni placeholder come {name}, {{count}} o %1$s viene controllato in ogni stringa. Le prime stringhe sono gratis e senza registrazione; il lavoro completo, fino a 20 file e 5,000 stringhe, costa $5 con pagamento una tantum, senza abbonamento. Un chatbot va bene per una dozzina di stringhe, ma un file con migliaia di chiavi spesso torna troncato, con chiavi rinominate o placeholder modificati.
- Fino a 300 stringhe gratis per intero, le prime stringhe di un lavoro più grande gratis, senza registrazione
- Lavoro completo a $5, pagamento una tantum: fino a 20 file e 5,000 stringhe
- Chiavi, annidamento, commenti e ordine restano com'erano; vengono tradotti solo i valori
- Placeholder, plurali ICU e tag inline controllati in ogni stringa
- Forme plurali scritte per la lingua di destinazione (PO, Android, Xcode)
- 41 lingue, tono formale o informale, glossario e nomi da non tradurre
{
"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 ricevi
Ricevi i tuoi file nello stesso formato, con il nome e la posizione che ogni piattaforma si aspetta: en.json diventa es.json, strings.xml va in una cartella values-es, Localizable.strings in es.lproj. Se i file sono più di uno, vengono scaricati insieme in un unico ZIP. Prima di scaricare, ogni stringa tradotta compare a schermo accanto all'originale e puoi modificarla.
- JSON e ARB: chiavi annidate, array, ordine delle chiavi, indentazione e spaziatura come nel tuo file. I messaggi ICU come {count, plural, one {# item} other {# items}} mantengono la loro struttura. In ARB i metadati "@" restano al loro posto e @@locale viene impostato.
- PO e POT: msgid e msgctxt non cambiano mai; le voci vuote e quelle fuzzy vengono tradotte, quelle che hanno già una traduzione restano invariate. Le voci plurali ottengono tanti msgstr[n] quanti ne servono alla lingua di destinazione, e l'intestazione riceve Language e Plural-Forms.
- strings.xml di Android: <string>, <string-array> e <plurals>; translatable="false" viene saltato; apostrofi e virgolette vengono preceduti da escape come richiede Android; il contenuto di <xliff:g> non viene mai tradotto.
- iOS e macOS: i file .strings mantengono commenti e codifica (spesso UTF-16); gli String Catalog .xcstrings ricevono una nuova localizzazione per la tua lingua, con le varianti plurali, e le stringhe già tradotte vengono conservate.
- XLIFF 1.2 e 2.0: un <target> dopo ogni <source> non tradotto, codici inline come <g>, <x/>, <ph> e <pc> mantenuti, e lingua di destinazione impostata sul file.
Tradurre file di stringhe con un chatbot e con questo strumento
I chatbot traducono bene i brevi testi dell'interfaccia, e una dozzina di stringhe incollate in una chat di solito tornano senza problemi. Il guaio, con un vero file di localizzazione, sono la lunghezza e la sintassi: migliaia di chiavi, placeholder, regole dei plurali ed escape che un compilatore o una libreria rifiutano se manca anche un solo carattere.
| La tua situazione | Un chatbot | Questo strumento |
|---|---|---|
| Dieci etichette di pulsanti | Di solito le traduce bene | Le traduce e ti restituisce il file |
| Un file con 3.000 chiavi | La risposta dovrebbe essere lunga quanto il file, quindi tende a interrompersi a metà | Traduce ogni stringa in blocchi da un massimo di 60, fino a 5,000 stringhe per lavoro |
| Chiavi e annidamento | Riscrive l'intero file, quindi le chiavi possono essere tradotte, rinominate o perse | Le chiavi non vengono mai inviate in traduzione; il file viene ricostruito dal tuo |
| Placeholder come {name}, %1$s o :attribute | Di solito li mantiene, ma nessun controllo lo verifica | Controlla ogni stringa; quella che perde un placeholder viene tradotta di nuovo, poi lasciata nella lingua originale ed elencata |
| Plurali in russo, polacco o arabo | Spesso copia le due forme inglesi | Scrive tutte le forme plurali che servono alla lingua di destinazione, con numeri di esempio per ciascuna |
| Apostrofi nelle stringhe Android | Può lasciare un apostrofo senza escape che rompe la build | Inserisce l'escape per apostrofi e virgolette come richiede Android |
Come tradurre un file di localizzazione
-
1
Carica i file e scegli una lingua
Trascina uno o più file dello stesso progetto: JSON, ARB, PO o POT, strings.xml, .strings, .xcstrings o XLIFF. Scegli la lingua di destinazione e il tono, ed elenca i nomi di prodotto da non tradurre.
-
2
Controlla le prime stringhe gratis
Le prime stringhe compaiono a schermo con le loro chiavi accanto al testo originale. Modificale direttamente lì. Per questo passaggio non serve nessun account.
-
3
Sblocca e scarica
Le prime stringhe ti convincono? Sblocca il lavoro completo per $5, poi scarica i file tradotti, insieme a un elenco di avvisi se qualcosa richiede un'occhiata.
Perché i file di stringhe lunghi mettono in difficoltà gli assistenti AI generici
Un file di localizzazione è codice quanto è testo. Per tradurlo in una chat, l'assistente deve riscrivere tutto il file, con chiavi, parentesi, escape e il resto, e un file con qualche migliaio di stringhe è più lungo di quanto possa contenere una singola risposta. Si interrompe a metà o ti chiede di continuare, e tocca a te rimettere insieme i pezzi.
Il secondo problema è la sintassi. Una chiave tradotta per errore, un {count} trasformato in {cuenta}, un %1$s che ha perso il simbolo del dollaro, un apostrofo senza escape in strings.xml: ognuna è una piccola modifica in una risposta lunga, e ognuna può rompere una build o mostrare ai tuoi utenti un placeholder grezzo.
Questo strumento non chiede mai a un modello di riscrivere il tuo file. Legge il file suddividendolo in stringhe, invia solo il testo, con la chiave e l'eventuale commento dello sviluppatore come contesto, in blocchi da un massimo di 60 stringhe, e pretende una risposta per ogni stringa. I tag inline vengono prima sostituiti da brevi marcatori. Ogni risposta viene controllata: stessi placeholder, stessi escape come \n, stessi marcatori, i nomi che hai elencato e tutte le forme plurali. Se una stringa non supera il controllo, viene richiesta di nuovo; se fallisce due volte, il testo originale resta al suo posto e la stringa viene inserita nell'elenco per te. Poi il file viene ricostruito a partire dal tuo originale.
Cosa traducono gli utenti
- App React, Vue, Angular e Next.js: file JSON di i18next, vue-i18n, react-intl e ngx-translate
- App Flutter: file .arb, con le descrizioni nei @metadata usate come contesto
- Plugin e temi WordPress, Django e altri progetti gettext: modelli .pot e file .po
- App Android: res/values/strings.xml con array di stringhe e plurali
- App iOS e macOS: Localizable.strings e String Catalog (.xcstrings)
- File esportati da una piattaforma di traduzione o da Xcode in formato XLIFF
Cosa non fa
Per ora non legge file YAML, .properties, .resx o .stringsdict, e non aggiunge le chiavi plurali di i18next (key_one, key_few) mancanti nel file di origine: traduce le chiavi che hai. Nei file .xcstrings, le stringhe che usano sostituzioni o varianti per dispositivo vengono lasciate così come sono.
Non sovrascrive le traduzioni che hai già: le voci PO compilate, i target XLIFF segnati come tradotti e le voci degli String Catalog nella tua lingua restano invariati. Un pagamento copre fino a 20 file e 5,000 stringhe; Unlimited copre fino a 15,000 stringhe per lavoro.
È una traduzione automatica con controlli strutturali. Va benissimo per rilasciare in fretta una prima versione di una lingua e per tenere il progetto sincronizzato. Per le schede degli store, i testi legali o qualsiasi contenuto con una voce di marca, falla rivedere da un madrelingua.
Come ottenere un buon risultato
Il contesto fa la differenza tra "Save" come verbo (salvare) e "Save" come sconto (risparmio). Chiavi come settings.save_button e i commenti nel tuo file (#. nei PO, descrizioni @key negli ARB, /* commenti */ nei .strings) vengono inviati insieme a ogni stringa, quindi un file con chiavi significative e qualche commento viene tradotto meglio.
Elenca i nomi delle tue app e dei tuoi prodotti in "Non tradurre mai" e scegli il registro formale o informale per le lingue che li distinguono. Usa le stringhe gratuite come prova, poi controlla l'elenco degli avvisi dopo lo sblocco: ogni voce mostra la chiave, il problema e ciò che ha restituito il modello.
Per lingua e situazione
Traduci un file i18n JSON
Carica en.json (o più file di namespace) e ricevi es.json con le stesse chiavi annidate, lo stesso ordine e la...
Leggi di più →Traduci un file PO online
Carica un modello .pot o un file .po tradotto in parte e ricevi un .po con ogni msgstr vuoto compilato. msgid...
Leggi di più →Quanto costa
Lavori piccoli, prime stringhe
Gratis
Un lavoro fino a 300 stringhe è gratis per intero, download inclusi. Lo vedi a schermo, senza registrazione. 1 lavoro al giorno, oppure 3 al giorno con un account gratuito.
Lavoro completo
$5
Un solo pagamento per fino a 20 file e 5,000 stringhe. Senza abbonamento, non scade mai.
Unlimited
$19 / settimana
Tutti gli strumenti del sito, con lavori fino a 15,000 stringhe.
Domande e risposte
ChatGPT può tradurre un file di localizzazione JSON?
Se è piccolo, di solito sì. Un file con migliaia di chiavi deve tornare indietro in un'unica risposta, quindi un chatbot tende a interrompersi a metà e nessuno controlla che ogni chiave e ogni segnaposto sia sopravvissuto. Questo strumento traduce i valori a blocchi, controlla ogni segnaposto e ricostruisce il file a partire dal tuo.
Quali formati sono supportati?
JSON (i18next, vue-i18n, react-intl, ngx-translate e simili), Flutter ARB, gettext PO e POT, Android strings.xml, iOS e macOS .strings e .xcstrings, e XLIFF 1.2 e 2.0. I file possono pesare fino a 10 MB ciascuno, fino a 20 file in un solo lavoro.
Chiavi e segnaposto vengono mantenuti?
Le chiavi non vengono mai inviate in traduzione. In ogni stringa vengono controllati i segnaposto come {name}, {{count}}, %s, %1$d, %@, :attribute e %{name}, le sequenze di escape come \n, i tag inline e le emoji. Una stringa che ne perde uno viene tradotta di nuovo; se continua a fallire, resta il testo di origine e la stringa compare nell'elenco degli avvisi.
Come vengono gestiti i plurali?
I messaggi ICU mantengono la loro struttura e ricevono le categorie plurali usate dalla lingua di destinazione. Le voci PO con msgid_plural ottengono tante forme msgstr[n] quante ne servono alla lingua di destinazione, e l'intestazione riceve il Plural-Forms corrispondente. I <plurals> di Android e le varianti plurali di Xcode vengono scritti con le categorie della lingua di destinazione, come one, few, many e other per il russo.
Che succede alle stringhe già tradotte?
Vengono mantenute. Vengono tradotte solo le voci PO vuote o fuzzy, le unità XLIFF senza un target completato e le voci degli String Catalog senza la tua lingua. In JSON, .strings e strings.xml ogni valore è trattato come testo di origine.
In quali lingue può tradurre?
41 lingue, tra cui spagnolo, francese, tedesco, italiano, portoghese (Brasile e Portogallo), olandese, polacco, russo, ucraino, turco, arabo, ebraico, hindi, indonesiano, vietnamita, thailandese, giapponese, coreano e cinese (semplificato e tradizionale).
È gratis?
Le prime stringhe di ogni lavoro sono tradotte gratis e mostrate a schermo, senza registrazione. Il lavoro completo, con i download, costa $5 con pagamento una tantum. Unlimited, a $19 a settimana, copre tutti gli strumenti del sito. I lavori piccoli fanno eccezione: un lavoro fino a 300 stringhe è gratis per intero, download inclusi.
I miei file sono privati?
Solo tu puoi aprire il tuo lavoro. Le stringhe vengono inviate a un fornitore di modelli di IA al solo scopo di tradurle, tramite canali che non usano i tuoi dati per l'addestramento. I lavori caricati senza account vengono eliminati dopo 7 giorni e puoi eliminare qualsiasi lavoro tu stesso in qualsiasi momento.
Aggiornato il 23 ottobre 2026 · APPFACT STUDIO LTD