# gt-next: General Translation Next.js SDK: Memorizzazione locale delle traduzioni
URL: https://generaltranslation.com/it/docs/next/guides/local-tx.mdx
---
title: Memorizzazione locale delle traduzioni
description: Memorizza le traduzioni nel bundle della tua app anziché usare una CDN
---
## Cosa sono le traduzioni locali?
Le traduzioni locali vengono salvate nel bundle della tua app, invece di essere recuperate da una CDN (Content Delivery Network). Quando aggiungi il comando `gt translate` al processo di build, vengono generate traduzioni in formato JSON. L'ultimo passaggio consiste nel fare in modo che queste traduzioni siano disponibili nella tua app, così da poterle utilizzare.
Ci sono due modi per farlo:
1. **Nel bundle della tua app** (locale): salva le traduzioni nel bundle della tua app dopo la generazione
2. **In una CDN** (predefinito): recupera le traduzioni da una CDN a runtime
Per impostazione predefinita, `gt-next` recupera le traduzioni dalla CDN di General Translation. Quando traduci la tua app usando la nostra API, le traduzioni vengono salvate automaticamente nella nostra CDN.
**Comportamento predefinito:** GT usa l'archiviazione su CDN per impostazione predefinita. Passa all'archiviazione locale solo se ti servono i vantaggi specifici che offre.
## Pro e contro
### Vantaggi delle traduzioni locali
* **Tempi di caricamento più rapidi**: le traduzioni locali vengono fornite direttamente dalla tua app e si caricano più rapidamente rispetto a quelle distribuite da una CDN
* **Nessuna dipendenza da servizi esterni**: la capacità della tua app di caricare le traduzioni non dipende dalla disponibilità della CDN. Se non vengono trovate traduzioni per un'impostazione regionale, l'app torna automaticamente alla lingua predefinita
* **Funziona offline**: le traduzioni sono integrate nella tua app
### Svantaggi delle traduzioni locali
* **Aumento delle dimensioni del bundle**: Le traduzioni locali aumentano le dimensioni del bundle della tua app, con il rischio di rallentare il caricamento iniziale
* **Gestione dei contenuti**: Per modificare una traduzione, devi ridistribuire l'app con la nuova traduzione ogni volta che apporti una modifica
## Setup
### Passaggio 1: Crea la funzione loadTranslations
Aggiungi un file `loadTranslations.[js|ts]` in `./src` con il contenuto seguente:
```ts title="src/loadTranslations.ts"
export default async function loadTranslations(locale: string) {
const translations = await import(`../public/_gt/${locale}.json`);
return translations.default;
}
```
[`withGTConfig`](/docs/next/api/config/with-gt-config) rileva automaticamente il file `loadTranslations.[js|ts]` nella directory `src/` o nella radice del progetto.
### Passaggio 2: Configura la CLI
Esegui il comando di configurazione e seleziona l'archiviazione locale:
```bash
npx gt configure
```
Quando richiesto:
* **Salvare sul CDN?** Seleziona "No"
* **Directory delle traduzioni:** Inserisci `./public/_gt`
In alternativa, puoi configurare manualmente il file `gt.config.json` per usare le traduzioni locali. Per maggiori informazioni, consulta la [documentazione della CLI sulla configurazione](/docs/cli/reference/config).
### Passaggio 3: Genera le traduzioni
Ora, quando esegui il comando `npx gt translate`, le traduzioni verranno scaricate automaticamente e incluse nella base di codice:
```bash
npx gt translate
```
Le traduzioni verranno archiviate in `public/_gt/` e incluse nel bundle dell'app.
## Integrazione nel processo di build
### Processo di build di Next.js
Aggiungi la generazione delle traduzioni allo script di build:
```json
{
"scripts": {
"build": "npx gt translate && <...YOUR_BUILD_COMMAND...>"
}
}
```
### Pipeline di CI/CD
```yaml
# .github/workflows/deploy.yml
- name: Generate Translations
run: npx gt translate
- name: Build Application
run: npm run build
```
## Problemi frequenti
### File di traduzione mancanti
Assicurati che le traduzioni vengano generate prima della compilazione:
```bash
# ❌ Build senza traduzioni
<...YOUR_BUILD_COMMAND...>
# ✅ Genera prima le traduzioni
npx gt translate && <...YOUR_BUILD_COMMAND...>
```
### Errori nel percorso di importazione
Nella funzione loadTranslations, fai in modo che la struttura delle directory corrisponda:
```ts
// ❌ Percorso errato
const t = await import(`../translations/${locale}.json`);
// ✅ Percorso corretto per public/_gt
const t = await import(`../public/_gt/${locale}.json`);
```
### Bundle di grandi dimensioni
Valuta il code splitting per le app che supportano molte lingue:
```ts
// Carica le traduzioni solo quando necessario
export default async function loadTranslations(locale: string) {
// Carica solo se l'impostazione regionale è attiva
if (locale === getCurrentLocale()) {
const translations = await import(`../public/_gt/${locale}.json`);
return translations.default;
}
return {};
}
```
L'archiviazione locale è ideale per le app con traduzioni stabili che non richiedono aggiornamenti frequenti.
## Passaggi successivi
* [Guida al middleware](/docs/next/guides/middleware) - Rilevamento della lingua e instradamento
* [Guida alle lingue](/docs/next/guides/languages) - Configura le lingue supportate
* Riferimenti API: