---
title: "Come tradurre i file di lingua della tua app con l’AI"
description: "JSON, YAML, XLIFF, PO, Android, iOS, Flutter e altro ancora. Scopri come tradurre i file di lingua della tua app con l’AI, dalla riga di comando, tramite il tuo agente o nell’app."
date: 2026-10-04
language: it
canonical: https://ai-glot.com/it/blog/how-to-translate-app-language-files-with-ai
source: AI Glot blog
---
**I file di lingua di un’app sono un’unica attività con tredici estensioni diverse.** Hai davanti un file JSON, un `strings.xml`, un file PO o uno String Catalog e vuoi ottenere le stesse stringhe in altre cinque lingue senza compromettere la build.

Il formato cambia, ma il lavoro resta lo stesso: mantieni le chiavi e i segnaposto, traduci i valori e ripeti tutto al rilascio successivo.

## Quale opzione scegliere?

| | Ideale per | Limiti |
|---|---|---|
| **AI Glot** | Tutti i formati elencati di seguito, più lingue in un’unica operazione, glossario da rispettare, ogni rilascio | Non serve per dieci stringhe |
| **Una piattaforma di gestione delle traduzioni** (Crowdin, Lokalise, Phrase) | Un team con un flusso di lavoro continuo, revisori e una connessione al repository | Prima di tradurre la prima stringa, devi configurare un progetto e collegare il repository |
| **DeepL** | [File XLIFF fino a 10 MB](https://developers.deepl.com/docs/best-practices/document-translations) | Accetta XLIFF, ma non gli altri formati elencati qui. Inoltre, sostituisce i termini del glossario senza capire perché siano vincolati |
| **ChatGPT, Claude o un altro assistente** | Poche stringhe | Devi scrivere il prompt e inserire il glossario in ogni chat. I file lunghi vengono elaborati lentamente, un token alla volta, e consumano il tuo limite di utilizzo. Ogni esecuzione rischia di modificare una chiave o rovinare un segnaposto |
| **Un freelance o un’agenzia** | La pagina dell’App Store, l’onboarding | Tempi lunghi, prezzo a parola e i file li devi comunque preparare tu |

**Affida a una persona le cinque stringhe che vendono la tua app**: la scheda dello store e la prima schermata. Affida a un motore le migliaia di stringhe che ci sono dietro.

## Scegli il formato del file

Per ogni formato trovi una pagina dedicata con uno strumento gratuito e tutti i dettagli. Ecco cosa devi sapere su ciascuno.

| File | Dove si trova | Cosa sapere |
|---|---|---|
| [**JSON**](/it/file-formats/json-translation) | `locales/en.json` | Le chiavi vengono restituite nello stesso ordine. Le istruzioni proteggono segnaposto come `{count}` |
| [**ARB** (Flutter)](/it/file-formats/arb-translation) | `lib/l10n/app_en.arb` | Le voci di metadati `@` vengono copiate. Imposta `@@locale` sulla lingua di destinazione |
| [**YAML**](/it/file-formats/yaml-translation) | `config/locales/en.yml` | Vengono riconosciuti i segnaposto `%{name}` tipici di Rails. I commenti vengono rimossi quando il file viene riscritto |
| [**TOML**](/it/file-formats/toml-translation) | `i18n/en.toml` (Hugo) | Cambiano solo i valori testuali. Di norma, i commenti restano invariati |
| [**XLIFF**](/it/file-formats/xliff-translation) | Esportazioni dai tuoi strumenti | Versioni 1.2 e 2.0. I tag inline vengono ricreati a partire dal testo sorgente |
| [**PO e POT**](/it/file-formats/po-translation) | `locale/fr/LC_MESSAGES/app.po` | Le voci plurali ricevono le forme previste dalla lingua di destinazione e l’intestazione `Plural-Forms` viene riscritta |
| [**Qt Linguist**](/it/file-formats/qt-translation) | `app_fr.ts` | I messaggi plurali (numerus) non vengono ancora tradotti. Esegui `lrelease` al termine |
| [**String Catalog**](/it/file-formats/xcstrings-translation) | `Localizable.xcstrings` | Tutte le lingue sono raccolte in un unico file. Sostituzioni e varianti per dispositivo restano invariate |
| [**iOS .strings**](/it/file-formats/ios-strings-translation) | `fr.lproj/Localizable.strings` | Il file viene restituito in UTF-8 e conserva i blocchi di commento. Sono gestiti anche i plurali `.stringsdict` |
| [**Android XML**](/it/file-formats/android-xml-translation) | `res/values-fr/strings.xml` | Sono gestiti i plurali e gli array di stringhe. L’attributo `translatable="false"` viene rispettato |
| [**RESX e RESW**](/it/file-formats/resx-translation) | `Resources.fr.resx` | Viene creato un file per lingua. I commenti per gli sviluppatori restano in inglese |
| [**Java .properties**](/it/file-formats/properties-translation) | `messages_fr.properties` | Solo UTF-8. Prima di tradurre, metti su un’unica riga i valori che continuano nella riga successiva |

I formati non gestiscono tutti le lingue allo stesso modo. Uno **String Catalog** raccoglie tutte le lingue in un unico file. La maggior parte degli altri formati, inclusi JSON, Android e iOS, contiene **una lingua per file**: ogni lingua di destinazione ha quindi il proprio file.

## Com’è fatto un file tradotto

Cambiano solo i valori.

*Illustration: Un file di localizzazione prima e dopo. Le chiavi e i segnaposto restano invariati: si traducono solo i valori.*

## Il percorso di un singolo file

*Illustration: Le cinque fasi di una traduzione di file di lingua. Tutto è gratuito fino all’approvazione, quindi correggere un piano errato non costa nulla.*

Non spendi nulla prima del quarto passaggio e correggere un piano sbagliato non costa nulla.

## Come fare, passo dopo passo

**1. Prova gratis con un file.** Ogni [pagina dei formati](/it/file-formats) include uno strumento gratuito che non richiede un account.

**2. Carica il file** [nell'app](https://app.ai-glot.com/signup) oppure invialo dalla riga di comando, come spiegato più avanti.

**3. Spiega in una frase cosa ti serve.**

```
Translate this file into French.
Skip every key that starts with "internal.".
```

*Illustration: Descrivi il lavoro in inglese semplice. AI Glot lo trasforma in un piano che puoi leggere e correggere prima dell'esecuzione.*

La frase determina cosa tradurre nell'intero file. Le istruzioni sulla formulazione, come "mantieni ogni `{placeholder}` esattamente com'è" o "usa un registro informale", vanno inserite nel secondo campo al momento dell'approvazione, perché vengono applicate a ogni stringa così com'è scritta.

**4. Aggiungi un glossario** con il nome del prodotto, i nomi delle funzionalità e le parole che la tua app usa sempre nello stesso modo. [Scopri come crearne uno](/it/blog/build-translation-glossary-brand).

*Illustration: Un glossario definisce i termini che non devono cambiare e applica la stessa scelta a ogni file.*

**5. Scegli il livello di qualità.**

*Illustration: Due livelli di qualità, selezionabili per file. Lite copre circa tre volte più parole a parità di crediti.*

**Lite** offre circa tre volte più parole per credito ed è più veloce: è la scelta giusta per le impostazioni meno importanti e i testi di assistenza. **Standard** è pensato per le stringhe che l'utente legge per prime. Con Standard, un credito equivale a una parola.

**6. Approva e scarica.**

*Illustration: Viene restituito un unico file, mantenendo il formato originale.*

## Un file, molte lingue

*Illustration: Da un file sorgente si ottiene un file tradotto per ogni lingua, tutti con le stesse chiavi e lo stesso glossario.*

I nomi dei file sono solo un esempio. Se hai un'intera cartella di file di localizzazione, inseriscila in uno ZIP: puoi elaborare fino a 200 file e 20 MB in un'unica operazione.

## Tre modi per usarlo

*Illustration: Tre modi per tradurre i file di lingua. Il risultato è sempre lo stesso insieme di file tradotti.*

**Dalla riga di comando** è la soluzione che gli sviluppatori continuano a usare. Sono gli stessi quattro passaggi, inseriti in uno script:

```bash
# 1. Create the job. Free. Returns a plan and an id.
id=$(aiglot batches create locales/en.json \
      --instruction "Translate into French. Skip every key that starts with internal." \
      --json | jq -r '.data.id')

# 2. Read the plan for free, then commit.
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
  --instructions "Keep every {placeholder} exactly as written."

# 3. When the status is completed, bring the file back.
aiglot batches download "$id" --output locales/fr.json
```

**Con il tuo agente AI:** collega AI Glot come [server MCP](https://ai-glot.com/docs/mcp/overview). L'agente può leggere il tuo repository, suggerire i termini che individua, aggiungerli al tuo spazio di lavoro, avviare l'operazione e rimettere i file al loro posto.

**Nell'app:** carica, fai clic e scarica. Ideale per un'operazione occasionale.

Per integrare l'API, consulta la [documentazione dell'API](https://ai-glot.com/docs/api/overview).

## Verifica il risultato

Crea l’app in una lingua tradotta e apri le tre schermate con le stringhe più lunghe. Poi esegui il lint abituale o un controllo delle chiavi mancanti, perché una chiave modificata risulta come stringa mancante. Il testo tradotto è spesso più lungo di quello inglese: controlla che pulsanti ed etichette non escano dai bordi.

Nella pagina [Prezzi](/it/pricing) trovi i costi per volumi maggiori. Con un [account gratuito](https://app.ai-glot.com/signup) hai crediti per elaborare un file reale.

---

*I limiti riportati qui erano quelli in vigore al momento della stesura: 200 file e 20 MB per ZIP. Il limite di DeepL è indicato nella sua documentazione. I nomi dei file e il numero di stringhe nei diagrammi sono esempi. Il tuo piano mostra i dati reali dei tuoi file ed è gratuito da consultare.*