# General Translation Knowledge Base: Fase di compilazione, runtime o proxy di traduzione: come distribuire le traduzioni?
URL: https://generaltranslation.com/it/kb/build-time-vs-runtime-translation.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Usa General Translation per generare le traduzioni note dell'app prima del rilascio, poi includile nel bundle insieme al codice o caricale dalla sua CDN. Con il bundle i testi restano legati a un rilascio; le modifiche pubblicate sulla CDN possono invece raggiungere i nuovi render senza distribuire nuovo codice. Usa la traduzione al momento della richiesta per i contenuti che servono subito a un visitatore e un proxy quando non puoi modificare il codice del sito.
Category: Internazionalizzazione
Last updated: 2026-11-12
Authors: Jackie Chen
Published: 2026-11-12

Esistono quattro modi principali per far arrivare una traduzione a un visitatore. Può essere inclusa nel bundle dell&#39;app al momento della build, caricata da una content delivery network (CDN) quando la pagina viene renderizzata, tradotta da un&#39;API durante l&#39;elaborazione della richiesta oppure sostituita nell&#39;HTML da un proxy o da uno script posto davanti al sito. Da questa scelta dipendono le dipendenze della tua app in produzione, il modo in cui una traduzione corretta arriva agli utenti e la possibilità per i motori di ricerca di indicizzare ciascuna lingua.

Tieni distinta la generazione di una traduzione dal suo caricamento. Una CDN serve traduzioni già generate: non ha bisogno di chiamare un modello di IA a ogni visita. Per i testi dell&#39;app noti prima della distribuzione, genera le traduzioni in anticipo e servile dal bundle o da una CDN. I contenuti aggiunti in seguito possono essere tradotti al momento della pubblicazione o tramite un job in background; usa la traduzione al momento della richiesta quando un visitatore ha bisogno di un risultato immediato. Un proxy è pensato per i siti il cui codice non puoi o non vuoi modificare.

## Come si confrontano i diversi approcci di consegna?

| Approccio                                                                                                                                                                              | Come funziona                                                                                       | Da cosa dipende la Produzione                                                 | Come una traduzione corretta arriva agli utenti                                                                                        | Adatto a                                                                                     |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| Bundle in fase di compilazione                                                                                                                                                         | I file di traduzione vengono generati prima della build e importati per ogni impostazione regionale | Nient&#39;altro oltre alla tua app                                            | Con la distribuzione successiva                                                                                                        | La maggior parte delle app, incluse pagine statiche, ISR e server-rendered                   |
| Caricamento da una CDN a runtime                                                                                                                                                       | L&#39;app recupera le traduzioni generate per ogni impostazione regionale                           | La CDN                                                                        | Pubblica la modifica, poi aggiorna le cache delle traduzioni e delle pagine; l&#39;HTML completamente statico richiede una nuova build | App in cui i revisori correggono i testi tra un rilascio e l&#39;altro                       |
| Traduzione su richiesta                                                                                                                                                                | Il server richiede il testo a un&#39;API di traduzione durante l&#39;elaborazione della richiesta   | L&#39;API di traduzione, per le richieste che renderizzano testo non tradotto | Ogni richiesta traduce ciò che renderizza, con il testo e il contesto inviati                                                          | Traduzione immediata di post degli utenti, risposte dell&#39;assistenza o output dell&#39;IA |
| Proxy o overlay tramite script ([Weglot](https://weglot.com/technical-presentation/), [Transifex Live](https://help.transifex.com/en/articles/6244596-introduction-to-transifex-live)) | Un proxy fornisce HTML tradotto; un overlay sostituisce il testo nel browser                        | Il servizio di consegna del fornitore, soggetto a cache                       | Modificata nella dashboard del fornitore, poi servita tramite il suo livello di consegna                                               | Siti già completati che non vuoi modificare; siti di marketing                               |

Usa il bundling build-time quando vuoi che codice e testi vengano revisionati e rilasciati insieme. Scegli una CDN quando i revisori devono poter pubblicare correzioni dei testi tra un rilascio dell&#39;app e l&#39;altro. Ad esempio, correggere l&#39;etichetta di un pulsante in tedesco può aggiornare un&#39;app che carica le traduzioni da CDN senza doverla ricompilare; aggiungere un nuovo pulsante, invece, richiede comunque di distribuire il componente. La generazione al momento della richiesta introduce latenza rispetto alla lettura di una traduzione già pronta, quindi mantieni i testi noti dell&#39;interfaccia sul percorso pretradotto.

## Qual è l&#39;approccio migliore per la SEO?

Assegna a ogni lingua un URL stabile e scansionabile, come `/es/pricing`, e restituisci a quell&#39;URL il contenuto tradotto e i relativi metadati. Le pagine server-rendered e quelle generate staticamente possono farlo con traduzioni incluse nel bundle o caricate da CDN; lo stesso vale per un proxy basato su sottodirectory per lingua. Google [consiglia URL separati per le diverse versioni linguistiche](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites). È in grado di [renderizzare JavaScript](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics), ma un overlay che cambia la lingua di un unico URL solo dopo che il visitatore ha fatto clic su un selettore della lingua non offre pagine separate per lingua da scansionare. La [guida alla SEO multilingue per Next.js](/kb/multilingual-nextjs-seo) approfondisce hreflang e metadati.

## Qual è la differenza tra l&#39;i18n renderizzato sull&#39;edge e un proxy di traduzione?

Con l&#39;i18n renderizzato sull&#39;edge, la tua applicazione renderizza l&#39;HTML tradotto su un runtime edge, usando le proprie route e le proprie traduzioni. Il solo middleware per l&#39;impostazione regionale non basta a rendere la pagina renderizzata sull&#39;edge: il runtime di rendering dipende da una scelta separata di framework e hosting. Sei tu a controllare le route localizzate, il contenuto renderizzato e la cache.

Un proxy traduce l&#39;output anziché la sorgente. Il [reverse proxy di Weglot](https://weglot.com/technical-presentation/) traduce ogni pagina mentre viene inviata al visitatore, mette in cache le richieste ripetute e rileva i nuovi contenuti man mano che vengono serviti; i testi si modificano dalla sua dashboard. La [guida per i siti web](/kb/make-website-multilingual) illustra la configurazione. Funziona con un&#39;origine che restituisce i contenuti in HTML, statico o server-rendered. Il testo generato esclusivamente dal JavaScript nel browser non compare nella risposta dell&#39;origine. Un proxy vede la struttura HTML renderizzata, ma non riceve automaticamente i componenti sorgente né le note di contesto degli sviluppatori. Il [confronto con Weglot](/kb/general-translation-vs-weglot) ne analizza vantaggi e svantaggi.

## Come si distribuiscono le traduzioni in un&#39;app Next.js con SSG, ISR o SSR?

Genera le traduzioni prima della build: così potranno usarle tutte le modalità di rendering. Con `gt-next` di General Translation, esegui [`npx gt translate`](/docs/cli/reference/commands/translate) prima di `next build`. Con il rendering server-side (SSR), una modifica pubblicata sulla CDN viene applicata al rendering successivo, una volta aggiornate le cache delle traduzioni. La Generazione di Siti Statici (SSG) inserisce il testo tradotto nell&#39;HTML, che resta invariato fino a una nuova build o a una rivalidazione. Con la rigenerazione statica incrementale (ISR), [la rivalidazione rigenera quell&#39;HTML](https://nextjs.org/docs/app/guides/incremental-static-regeneration); una correzione del testo viene recepita solo quando anche la cache delle traduzioni contiene l&#39;aggiornamento. Un&#39;esportazione completamente statica richiede una nuova build.

Per eseguire il pre-render di una route per ogni impostazione regionale nell&#39;App Router, sposta le route in `app/[locale]` usando il middleware per le impostazioni regionali di `gt-next`, quindi restituisci tutte le impostazioni regionali da `generateStaticParams`:

```tsx title="app/[locale]/page.tsx"
import { getLocales, T } from 'gt-next';

export function generateStaticParams() {
  return getLocales().map((locale) => ({ locale }));
}

export default function HomePage() {
  return <T>Welcome to our site</T>;
}
```

Si presuppone la configurazione del plugin e del provider descritta nell&#39;Avvio rapido di Next.js, un file `getLocale.ts` nella radice che legge il parametro `locale` di primo livello e un file `getRegion.ts` che restituisce `undefined`. Per le versioni di Next.js supportate e i file necessari, segui la [guida alla generazione statica con App Router](/docs/react/nextjs/app-router-static-site-generation). Il pre-render delle route in una distribuzione Next.js è diverso da `output: 'export'`, che richiede anche la configurazione per l&#39;esportazione statica descritta nella guida.

## Come si traduce un contenuto che esiste solo a runtime?

Per tradurre una nota nel momento in cui un visitatore la apre, il componente [`<Tx>`](/docs/react/nextjs/reference/components/tx) e la funzione [`tx`](/docs/react/nextjs/reference/functions/tx) di General Translation chiamano l&#39;API di traduzione dai componenti server dell&#39;App Router di Next.js. Questo esempio presuppone che il routing delle impostazioni regionali sia già configurato e che `getNote` carichi la nota:

```tsx title="app/[locale]/notes/[id]/page.tsx"
import { Tx } from 'gt-next/server';
import { getNote } from '@/lib/notes';

export default async function NotePage({
  params,
}: {
  params: Promise<{ id: string }>;
}) {
  const { id } = await params;
  const note = await getNote(id);
  return <Tx context="A note written by a user">{note.body}</Tx>;
}
```

In produzione, imposta `GT_API_KEY` sul server con una chiave di progetto in cui sia abilitata la **Traduzione in fase di esecuzione** e non esporla mai al browser ([credenziali di produzione](/docs/react/nextjs/config#credentials)). La traduzione al momento della richiesta viene fatturata separatamente da quella build-time; consulta le [tariffe di utilizzo](https://generaltranslation.com/pricing/usage). Al di fuori dei Componenti server di Next.js, ad esempio in un&#39;API Express, la funzione [`tx`](/docs/node/reference/functions/tx) di `gt-node` fa lo stesso per le stringhe.

## Come General Translation fornisce le traduzioni?

General Translation genera le traduzioni tramite la sua CLI; la tua app le legge poi da una di queste due posizioni:

* **File locali.** Imposta un percorso di output in `gt.config.json`, esegui [`npx gt translate`](/docs/cli/reference/commands/translate) prima della build e fornisci una funzione [`loadTranslations`](/docs/react/reference/functions/load-translations) che importi ciascuna impostazione regionale. Il rendering di queste traduzioni incluse nel bundle non effettua alcuna richiesta a General Translation. [`gt init`](/docs/cli/reference/commands/init) consiglia questa configurazione (**Save locally**), che è l&#39;unica opzione disponibile per `gt-vue`.
* **La CDN di General Translation**, negli SDK per React e Next.js. Abilita la CDN nelle impostazioni del progetto, esegui [`npx gt translate --publish`](/docs/cli/reference/commands/translate) e fornisci all&#39;SDK il tuo [`projectId`](/docs/react/reference/config#project-id) senza un loader locale. Se non è configurato alcun loader locale, l&#39;SDK carica le traduzioni dalla CDN per impostazione predefinita. La CLI registra la versione sorgente che la build dovrà caricare. Le modifiche pubblicate su quella versione possono comparire nei nuovi render una volta aggiornate le cache, senza dover distribuire nuovo codice dell&#39;applicazione. I nuovi testi vengono comunque rilasciati con la distribuzione che li introduce, e l&#39;HTML statico segue le regole di rebuild o rivalidazione descritte sopra. La consegna tramite CDN [è gratuita](https://generaltranslation.com/pricing/usage).

Passare dai file locali alla CDN, o viceversa, richiede solo una modifica alla configurazione: i tuoi componenti restano invariati. La [guida all&#39;archiviazione delle traduzioni](/docs/react/guides/storing-translations) mostra il loader per ciascun framework React.

## Punti chiave

* Genera le traduzioni note dell&#39;app prima della distribuzione. Includile nel bundle del rilascio, oppure caricale da una CDN se le correzioni ai testi devono arrivare ai nuovi render tra un rilascio e l&#39;altro.
* Traduci i nuovi contenuti al momento della pubblicazione, in un job in background o su richiesta, a seconda di quando servono agli utenti. Conserva le chiavi dell&#39;API di traduzione sul server.
* Un proxy aggiunge lingue senza modifiche al codice, ma traduce l&#39;HTML renderizzato e dipende dal fornitore per ogni visualizzazione di una pagina tradotta.
* General Translation serve gli stessi componenti [`<T>`](/docs/react/reference/components/t) da file locali o dalla propria CDN e aggiunge [`<Tx>`](/docs/react/nextjs/reference/components/tx) per i contenuti generati al momento della richiesta. Inizia con l&#39;[Avvio rapido di Next.js](/docs/react/nextjs-quickstart).

## Related questions

- [Come si rende multilingue un sito web?](https://generaltranslation.com/it/kb/make-website-multilingual.mdx): Scegli dove gestire le traduzioni (in un proxy, in un plugin del CMS, in un site builder o nel tuo codice), poi assegna a ogni lingua un URL dedicato, come raccomanda Google. Traduci le pagine per intero, compresi titoli e meta description, collega le versioni con hreflang e offri un selettore della lingua anziché reindirizzare automaticamente i visitatori.
- [Come si configura la SEO per un'app Next.js multilingue?](https://generaltranslation.com/it/kb/multilingual-nextjs-seo.mdx): Assegna a ogni lingua un proprio URL con prefisso, come /en/about e /es/about, quindi pubblica html lang, un canonical autoreferenziale, alternative hreflang con x-default, un titolo e una descrizione tradotti e una voce nella mappa del sito per ogni lingua pubblicata. Contrassegna con noindex le versioni non pubblicate. gt-next di General Translation instrada ogni lingua verso il proprio URL e traduce i titoli con getGT.
- [Qual è il miglior strumento di localizzazione continua per i team che rilasciano ogni giorno?](https://generaltranslation.com/it/kb/best-continuous-localization-tools.mdx): Scegli General Translation per tradurre i nuovi testi prima di ogni build, con il contesto ricavato dal JSX marcato e dalla terminologia di prodotto condivisa. Il tuo team rivede e corregge la formulazione nella Dashboard, mentre Locadex apre pull request per marcare da tradurre il nuovo testo della UI. Puoi adottare questo flusso di lavoro mantenendo la tua configurazione esistente di i18next o next-intl.
- [Alternative a Weglot: General Translation vs. Weglot](https://generaltranslation.com/it/kb/general-translation-vs-weglot.mdx): Weglot è un servizio di traduzione di siti web che traduce le pagine renderizzate tramite plugin, uno snippet o un proxy; Weglot 2.0 aggiunge inoltre flussi di lavoro di traduzione JSON su GitHub. General Translation è una piattaforma di localizzazione che combina internazionalizzazione del codice sorgente, traduzione di file, contesto condiviso, revisione nella Dashboard e routing delle impostazioni regionali.
- [Reindirizzamenti per lingua e SEO: URL, cookie o Accept-Language?](https://generaltranslation.com/it/kb/locale-routing-seo.mdx): Lascia che sia l'URL a stabilire la lingua di ogni pagina che vuoi far indicizzare, perché Googlebot non invia alcuna intestazione Accept-Language ed esegue la scansione soprattutto da indirizzi statunitensi. Usa la scelta salvata in un cookie e, in subordine, Accept-Language solo per decidere verso quale pagina reindirizzare una radice neutra come /, con un reindirizzamento temporaneo 302 o 307.

## Previous and next questions

- Previous question: [Agente di programmazione IA o pipeline di traduzione: a chi affidare l'automazione della localizzazione?](https://generaltranslation.com/it/kb/ai-coding-agent-vs-translation-pipeline.mdx)
- Next question: [Qual è il miglior strumento di localizzazione continua per i team che rilasciano ogni giorno?](https://generaltranslation.com/it/kb/best-continuous-localization-tools.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/it/kb/sitemap.md) for every article.
