# General Translation Knowledge Base: Come si traduce un'app Node.js?
URL: https://generaltranslation.com/it/kb/translate-node-app.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Rileva la lingua di ogni richiesta, di solito dall'intestazione Accept-Language, e restituisci ogni stringa in quella lingua. gt-node di General Translation associa l'impostazione regionale a ogni richiesta con withGT e traduce le stringhe con getGT, a partire dalle traduzioni che npx gt translate --publish genera prima della distribuzione.
Category: Internazionalizzazione
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

Tradurre un&#39;app Node.js significa rilevare la lingua di ogni richiesta, di solito dall&#39;intestazione `Accept-Language`, e restituire ogni stringa in quella lingua. La difficoltà sta nel fatto che un solo server gestisce molti utenti contemporaneamente, quindi la lingua non può essere un&#39;impostazione globale: ogni richiesta ha la propria, e ogni funzione che costruisce la risposta deve conoscerla. Anche le stringhe che contengono valori richiedono regole grammaticali specifiche per ciascuna lingua: un conteggio assume una delle 2 forme plurali dell&#39;inglese e una delle 6 dell&#39;arabo.

## Video

The video is narrated in English, with English captions.

[How do I translate a Node.js app?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translate-node-app.mp4) (48 s)

General Translation lets you translate strings into each request's locale with `gt-node`. Call `initializeGT` once, wrap each request in `withGT`, await `getGT` in a handler, list `server.js` in `gt.config.json`, sign in, and run `npx gt translate`.

## Modi per tradurre un&#39;app Node.js

| Approccio                                                                                            | Punti di forza                                                                                                                                                                            | Impostazione regionale per ogni richiesta                                                                                 | Cosa resta a tuo carico                                                                                                                                                                                                        |
| ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Solo una libreria di internazionalizzazione (i18n) ([`i18next`](/kb/general-translation-vs-i18next)) | Runtime maturo per renderizzare le traduzioni e formattare i valori                                                                                                                       | La rileva un plugin middleware                                                                                            | Estrarre le stringhe in un file JSON di chiavi per ogni lingua, scrivere ogni traduzione e aggiornare tutti i file quando il testo cambia                                                                                      |
| [`nestjs-i18n`](/kb/general-translation-vs-nestjs-i18n) (NestJS)                                     | Renderizza i messaggi da cataloghi JSON o YAML per lingua, su HTTP, GraphQL, gRPC e WebSocket                                                                                             | I resolver leggono la query string, un&#39;intestazione, un cookie o `Accept-Language`, nell&#39;ordine in cui li elenchi | Scrivere il catalogo di ogni lingua e mantenerlo aggiornato                                                                                                                                                                    |
| Un&#39;API di traduzione automatica al momento della richiesta (DeepL, Google Cloud Translation)     | Traduce qualsiasi testo, compresi i contenuti che esistono solo a runtime                                                                                                                 | Passi la lingua di destinazione a ogni chiamata                                                                           | Latenza e costi a ogni richiesta (a meno di memorizzare i risultati in cache), coerenza terminologica, plurali e revisione                                                                                                     |
| General Translation (`gt-node` e la CLI `gt`)                                                        | Le stringhe restano inline nei gestori, all&#39;interno di chiamate `gt()`, e [`npx gt translate --publish`](/docs/cli/reference/commands/translate) le traduce prima della distribuzione | La associa [`withGT`](/docs/node/reference/functions/with-gt)                                                             | Un ID progetto e il file `gt.config.json` generati da [`npx gt init`](/docs/cli/reference/commands/init), [`gt login`](/docs/cli/reference/commands/login) o una chiave API, più la CLI nella fase di build o di distribuzione |

Usa solo `i18next` o `nestjs-i18n` se il tuo team gestisce già cataloghi tradotti. Ricorri a un&#39;API di traduzione automatica al momento della richiesta solo per i contenuti che esistono esclusivamente a runtime, come i post degli utenti. Usa `gt-node` quando le stringhe si trovano nei tuoi gestori e cambiano a ogni rilascio. Se la tua API restituisce solo dati e codici di errore e tutti i messaggi vengono renderizzati da un client web o mobile, basta una configurazione più semplice: traduci direttamente nel client.

## Tradurre un&#39;app Node.js con gt-node

1. Chiama [`initializeGT`](/docs/node/reference/functions/initialize-gt) una sola volta all&#39;avvio, specificando le impostazioni regionali.

2. Racchiudi ogni richiesta in [`withGT`](/docs/node/reference/functions/with-gt). Questa funzione associa l&#39;impostazione regionale tramite `AsyncLocalStorage`, in modo che ogni richiesta concorrente mantenga la propria, mentre [`getRequestLocale`](/docs/node/reference/functions/get-request-locale) la ricava dall&#39;header `Accept-Language`.

3. In un gestore, chiama [`getGT`](/docs/node/reference/functions/get-gt) per ottenere una funzione `gt()` che accetta messaggi ICU, plurali inclusi, e un&#39;opzione `$context` per le parole ambigue:

   ```js title="server.js"
   import express from 'express';
   import { initializeGT, withGT, getRequestLocale, getGT } from 'gt-node';

   initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'] });
   const app = express();
   app.use((req, res, next) => withGT(getRequestLocale(req), () => next()));

   app.get('/api/greeting', async (req, res) => {
     const gt = await getGT();
     res.json({ message: gt('Hello, {name}!', { name: 'Alice' }) });
   });
   app.listen(3000, () => console.log('Listening on http://localhost:3000'));
   ```

4. Prima di distribuire l&#39;app, abilita la CDN nelle Impostazioni del progetto ed esegui [`npx gt translate --publish`](/docs/cli/reference/commands/translate).

In produzione, `gt-node` recupera queste traduzioni dalla CDN di General Translation per l&#39;ID progetto indicato in `GT_PROJECT_ID`; se una traduzione non è disponibile, viene usata la stringa di origine.

## Condividere la terminologia con l&#39;app client

Se anche il client web o mobile utilizza General Translation, assegna il suo gruppo di contesto (Glossario e prompt personalizzati) al progetto del server da **Project &gt; Context** nella dashboard, così che le nuove traduzioni restituite nelle risposte API usino gli stessi termini. Per la procedura completa, consulta l&#39;[Avvio rapido di Node.js](/docs/node/quickstart).

## Related questions

- [Come si traduce un'app React?](https://generaltranslation.com/it/kb/translate-react-app.mdx): Tradurre un'app React significa internazionalizzarne i componenti affinché vengano renderizzati nella lingua dell'utente, quindi tradurre ogni stringa in ciascuna lingua supportata. gt-react di General Translation traduce il JSX in-place nel componente `<T>`, mentre npx gt translate genera un file per ogni lingua.
- [Come si traduce un'app Vue?](https://generaltranslation.com/it/kb/translate-vue-app.mdx): Tradurre un'app Vue significa far passare ogni stringa del template attraverso una ricerca nella lingua attiva e tradurla in ogni lingua di destinazione. Il plugin gt-vue di General Translation traduce il contenuto racchiuso nel componente `<T>` e npx gt translate genera un catalogo per ogni lingua di destinazione.
- [Come si aggiunge l'i18n a un'app Next.js con App Router?](https://generaltranslation.com/it/kb/add-i18n-to-nextjs.mdx): Inizia con gt init per configurare General Translation in un progetto App Router supportato, poi contrassegna il contenuto di origine, genera le traduzioni e verifica il cambio di lingua. gt-next mantiene i testi nel JSX insieme al contesto di traduzione; la CLI, l'editor della Dashboard e Locadex si occupano di generazione, revisione e aggiornamenti continui. Questa guida mostra anche la configurazione esplicita con file locali.
- [Come mantengo le traduzioni aggiornate a ogni distribuzione?](https://generaltranslation.com/it/kb/translations-in-ci.mdx): Esegui la traduzione come passaggio della pipeline prima di ogni build di produzione, così i nuovi testi vengono rilasciati già tradotti insieme alla distribuzione che li introduce. La CLI gt di General Translation lo fa con npx gt translate, usando una chiave API e un ID progetto archiviati come segreti CI.

## Previous and next questions

- Previous question: [Come si traduce un sito di documentazione Mintlify?](https://generaltranslation.com/it/kb/translate-mintlify-docs.mdx)
- Next question: [Come si traduce un'app React Native?](https://generaltranslation.com/it/kb/translate-react-native-app.mdx)

## Sitemap

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