# gt-node: General Translation Node.js SDK: Quickstart
URL: https://generaltranslation.com/it/docs/node/quickstart.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Installa la libreria `gt-node` di General Translation e traduci il tuo primo servizio Node.js.

`gt-node` traduce le stringhe nei server e nei servizi Node.js. Lo inizializzi una sola volta, associ l&#39;impostazione regionale a ogni richiesta in arrivo e traduci le stringhe nei tuoi handler.

Usa `gt-node` per servizi backend come le API Express o Fastify. Per le app React usa [`gt-react`](/docs/react/react-quickstart); per Next.js usa [`gt-next`](/docs/react/nextjs-quickstart).

*Nota: `gt-node` richiede Node.js 18 o versioni successive. L&#39;associazione dell&#39;impostazione regionale per richiesta usa `AsyncLocalStorage` di `node:async_hooks`.*

## Cosa fa gt-node [#what-it-does]

`gt-node` ti offre:

* **Traduzione delle stringhe** con [`getGT`](/docs/node/reference/functions/get-gt), per stringhe locali all&#39;handler.
* **Messaggi registrati** con [`msg`](/docs/node/reference/functions/msg) e [`getMessages`](/docs/node/reference/functions/get-messages), per costanti ed errori condivisi.
* **Traduzione a runtime** con [`tx`](/docs/node/reference/functions/tx), per contenuto dinamico.
* **Associazione dell&#39;impostazione regionale per richiesta** con [`withGT`](/docs/node/reference/functions/with-gt), oltre ad helper per rilevare l&#39;impostazione regionale della richiesta.

## Quickstart [#quickstart]

Installa la libreria, inizializzala, associa un&#39;impostazione regionale a ogni richiesta e traduci una stringa.

### 1. Installa `gt-node`

Installa `gt-node` ed Express come dipendenze e la [CLI `gt`](/docs/cli/quickstart) come dipendenza di sviluppo.

<Tabs items={['npm', 'yarn', 'bun', 'pnpm']}>
  <Tab value="npm">
    ```bash
    npm install gt-node express && npm install gt --save-dev
    ```
  </Tab>

  <Tab value="yarn">
    ```bash
    yarn add gt-node express && yarn add --dev gt
    ```
  </Tab>

  <Tab value="bun">
    ```bash
    bun add gt-node express && bun add --dev gt
    ```
  </Tab>

  <Tab value="pnpm">
    ```bash
    pnpm add gt-node express && pnpm add --save-dev gt
    ```
  </Tab>
</Tabs>

*Nota: il codice del server qui sotto usa la sintassi `import` dei moduli ES. Imposta `"type": "module"` nel tuo `package.json` affinché Node.js possa eseguirlo.*

### 2. Inizializza la libreria

Rendi disponibili l&#39;ID progetto e la chiave API di sviluppo nel processo Node.js:

```bash
export GT_PROJECT_ID="your-project-id"
export GT_DEV_API_KEY="gtx-dev-..."
```

Chiama [`initializeGT`](/docs/node/reference/functions/initialize-gt) una volta all&#39;avvio, prima di gestire le richieste. Passa direttamente le impostazioni regionali. Quando i campi delle credenziali vengono omessi, `gt-node` legge `GT_PROJECT_ID`, `GT_API_KEY` e `GT_DEV_API_KEY` dalle variabili d&#39;ambiente; non legge automaticamente `gt.config.json`.

```ts title="server.js"
import { initializeGT } from 'gt-node';

initializeGT({
  defaultLocale: 'en',
  locales: ['en', 'es', 'fr'],
});
```

### 3. Associa l’impostazione regionale della richiesta

Racchiudi ogni richiesta in [`withGT`](/docs/node/reference/functions/with-gt) in modo che le funzioni di traduzione conoscano l’impostazione regionale di destinazione. Usa [`getRequestLocale`](/docs/node/reference/functions/get-request-locale) per rilevarla dall’header `Accept-Language`.

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

const app = express();
app.use((req, res, next) => withGT(getRequestLocale(req), () => next()));
```

### 4. Traduci una stringa

All&#39;interno di un handler, usa [`await getGT`](/docs/node/reference/functions/get-gt) per ottenere una funzione di traduzione per l&#39;impostazione regionale della richiesta, quindi traduci le stringhe. Interpola i valori con i segnaposto ICU.

```js title="server.js"
import { getGT } from 'gt-node';

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'));
```

### 5. Esegui e verifica

Combina gli snippet dei passaggi 2–4 in un unico file `server.js`, quindi avvia il server. Prima di generare le traduzioni, l&#39;handler restituisce la stringa sorgente, confermando che il servizio è configurato correttamente.

```bash
node server.js
```

In un altro terminale, invia una richiesta:

```bash
curl http://localhost:3000/api/greeting
```

```json title="Output"
{"message":"Hello, Alice!"}
```

### 6. Genera le traduzioni

Esegui la CLI prima di distribuire in produzione, così le traduzioni saranno disponibili a runtime.

```bash
npx gt translate
```

*Nota: [`gt translate`](/docs/cli/reference/commands/translate) legge un `gt.config.json` e richiede un ID progetto e una chiave API. Esegui prima [`npx gt init`](/docs/cli/reference/commands/init) per crearli.*

(Consulta [Traduzione delle stringhe](/docs/node/guides/translating-strings) per capire quando usare [`getGT`](/docs/node/reference/functions/get-gt), [`msg`](/docs/node/reference/functions/msg) e [`tx`](/docs/node/reference/functions/tx), e [Configurare gt-node](/docs/node/guides/configuring) per credenziali e consegna).

## Next steps

- /docs/node/guides/translating-strings
- /docs/node/guides/detecting-locale
- /docs/node/guides/configuring
- /docs/node/guides/storing-translations

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
