# 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