# node: Memorizzazione locale delle traduzioni
URL: https://generaltranslation.com/it/docs/node/guides/local-tx.mdx
---
title: Memorizzazione locale delle traduzioni
description: Memorizza le traduzioni nel bundle dell'app invece di recuperarle da una CDN
---
## Cosa sono le traduzioni locali?
Per impostazione predefinita, `gt-node` recupera le traduzioni dalla CDN di General Translation a runtime. Con le traduzioni locali, includi i file di traduzione direttamente nella tua app, senza bisogno di richieste esterne.
**Comportamento predefinito:** GT usa l'archiviazione su CDN per impostazione predefinita. Passa all'archiviazione locale solo se ti servono i vantaggi specifici che offre.
## Compromessi
### Vantaggi delle traduzioni locali
* **Tempi di risposta più rapidi**: Nessuna richiesta di rete per recuperare le traduzioni a runtime
* **Nessuna dipendenza da servizi esterni**: La tua app funziona indipendentemente dalla disponibilità della CDN
* **Funziona offline**: Le traduzioni sono incluse nell'artefatto di deployment
### Svantaggi delle traduzioni locali
* **Aumento delle dimensioni del bundle**: ogni impostazione regionale supportata aumenta le dimensioni del deployment
* **Nuovo deployment per aggiornare**: per modificare una traduzione è necessario un nuovo deployment
## Setup
### Passaggio 1: Crea una funzione loadTranslations
Scrivi una funzione che carichi un file JSON di traduzione in base a un'impostazione regionale:
```js title="loadTranslations.js"
import { readFile } from 'fs/promises';
import path from 'path';
export default async function loadTranslations(locale) {
const filePath = path.join(process.cwd(), 'translations', `${locale}.json`);
const data = await readFile(filePath, 'utf-8');
return JSON.parse(data);
}
```
### Passaggio 2: passalo a `initializeGT`
```js title="server.js"
import { initializeGT } from 'gt-node';
import loadTranslations from './loadTranslations.js';
initializeGT({
defaultLocale: 'en',
locales: ['en', 'es', 'fr', 'ja'],
projectId: process.env.GT_PROJECT_ID,
loadTranslations,
});
```
### Passaggio 3: Configura la CLI
Esegui il comando di configurazione e seleziona l'archiviazione locale:
```bash
npx gt configure
```
Quando richiesto:
* **Salva nel CDN?** Seleziona "No"
* **Directory delle traduzioni:** Inserisci `./translations`
### Passaggio 4: Genera le traduzioni
```bash
npx gt translate
```
Questo scarica i file di traduzione nella directory `translations/`.
## Integrazione nel build
Aggiungi la generazione delle traduzioni allo script di build, così le traduzioni saranno sempre aggiornate:
```json title="package.json"
{
"scripts": {
"build": "npx gt translate && "
}
}
```
### Pipeline CI/CD
```yaml title=".github/workflows/deploy.yml"
- name: Generate Translations
run: npx gt translate
- name: Build Application
run: npm run build
```
## Problemi comuni
### File di traduzione mancanti
Genera sempre le traduzioni prima della build:
```bash
# ❌ Build senza traduzioni
node server.js
# ✅ Genera prima le traduzioni
npx gt translate && node server.js
```
### Errori nel percorso del file
Assicurati che il percorso nella funzione loadTranslations corrisponda alla directory di output della CLI:
```js
// ❌ Percorso errato
const filePath = path.join(process.cwd(), 'public', `${locale}.json`);
// ✅ Corrisponde alla directory configurata
const filePath = path.join(process.cwd(), 'translations', `${locale}.json`);
```
L'archiviazione locale è ideale per le app con traduzioni stabili che non richiedono aggiornamenti frequenti.
## Passaggi successivi
* [Comando CLI `translate`](/docs/cli/translate) — riferimento per generare le traduzioni
* [Configurazione CLI](/docs/cli/reference/config) — configura la directory di output e la modalità di archiviazione
* [Pattern di traduzione delle stringhe](/docs/node/guides/strings) — come tradurre i contenuti