# gt-node: General Translation Node.js SDK: withGT
URL: https://generaltranslation.com/it/docs/node/reference/functions/with-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Associa un'impostazione regionale per la durata di una richiesta, così le funzioni di General Translation verranno risolte in base a essa. Riferimento API per withGT.

Avvolge una callback per fornire il contesto dell&#39;impostazione regionale alle funzioni di traduzione. In un server Node.js, ogni richiesta in genere gestisce un utente diverso con un&#39;impostazione regionale diversa e `withGT` imposta l&#39;impostazione regionale per ogni funzione di General Translation chiamata all&#39;interno della callback.

## Panoramica [#overview]

Chiama `withGT` con un&#39;impostazione regionale e una funzione. Tutte le chiamate a [`getGT`](/docs/node/reference/functions/get-gt), [`getMessages`](/docs/node/reference/functions/get-messages), [`getTranslations`](/docs/node/reference/functions/get-translations), [`tx`](/docs/node/reference/functions/tx) e [`getLocale`](/docs/node/reference/functions/get-locale) all&#39;interno della funzione di callback fanno riferimento a quell&#39;impostazione regionale.

```ts
import { withGT } from 'gt-node';

app.get('/api/greeting', (req, res) => {
  withGT(req.locale, () => {
    // Le funzioni di traduzione qui dentro usano req.locale
  });
});
```

Firma:

```ts
withGT<T>(locale: string, fn: () => T): T
```

*Nota: `withGT` usa internamente l&#39;async local storage per associare l&#39;impostazione regionale alla richiesta corrente. Il contesto non si propaga ad altre richieste concorrenti.*

## Come funziona [#how-it-works]

* **Impostazione regionale con ambito limitato.** L&#39;impostazione regionale viene associata solo per la durata di `fn`. Ogni richiesta concorrente mantiene la propria impostazione regionale.
* **Risoluzione dell&#39;impostazione regionale.** L&#39;impostazione regionale passata viene risolta in base ai `locales` configurati; se il valore non è supportato, viene usato `defaultLocale`.
* **Sincrona o asincrona.** `fn` può essere sincrona o asincrona e `withGT` restituisce qualunque valore restituisca `fn`.
* **Richiede l&#39;inizializzazione.** [`initializeGT`](/docs/node/reference/functions/initialize-gt) deve essere eseguito prima di `withGT`, altrimenti viene generato un errore.

## Parametri [#parameters]

| Parametro           | Descrizione                                                           | Tipo      | Facoltativo | Predefinito |
| ------------------- | --------------------------------------------------------------------- | --------- | ----------- | ----------- |
| [`locale`](#locale) | L&#39;impostazione regionale da associare alla callback.              | `string`  | No          | —           |
| [`fn`](#fn)         | La funzione da eseguire nel contesto dell&#39;impostazione regionale. | `() => T` | No          | —           |

### `locale` [#locale]

**Tipo** `string` · **Obbligatorio**

Un [codice locale](/docs/platform/core/reference/utility-functions/locales/is-valid-locale) (ad esempio `'es'`, `'fr-CA'`) da usare per le traduzioni all&#39;interno del callback.

### `fn` [#fn]

**Tipo** `() => T` · **Obbligatorio**

Una callback da eseguire nel contesto dell&#39;impostazione regionale specificata. Può essere sincrona o asincrona.

## Restituisce [#returns]

**Tipo** `T`

Il valore restituito dalla funzione di callback `fn`.

## Esempi [#examples]

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

initializeGT({
  defaultLocale: 'en',
  locales: ['en', 'es', 'fr'],
  projectId: process.env.GT_PROJECT_ID,
});

const app = express();

app.use((req, res, next) => {
  const locale = req.headers['accept-language']?.split(',')[0] || 'en';
  withGT(locale, () => {
    next();
  });
});

app.get('/api/greeting', async (req, res) => {
  const gt = await getGT();
  res.json({ message: gt('Hello, world!') });
});
```

```ts title="handler.js"
// Wrapping di un handler asincrono
import { withGT, getGT } from 'gt-node';

export async function handleRequest(locale) {
  return withGT(locale, async () => {
    const gt = await getGT();
    return gt('Welcome to our app!');
  });
}
```

## Note [#notes]

* [`initializeGT`](/docs/node/reference/functions/initialize-gt) deve essere chiamato prima di utilizzare `withGT`, altrimenti viene generato un errore.
* Il contesto dell&#39;impostazione regionale è limitato al callback e non si estende ad altre richieste simultanee.
* `withGT` funziona sia con callback sincroni che asincroni.

## Sitemap

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