# gt-node: General Translation Node.js SDK: withGT URL: https://generaltranslation.com/it/docs/node/reference/functions/with-gt.mdx --- title: withGT 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'impostazione regionale alle funzioni di traduzione. In un server Node.js, ogni richiesta in genere gestisce un utente diverso con un'impostazione regionale diversa e `withGT` imposta l'impostazione regionale per ogni funzione di General Translation chiamata all'interno della callback. ## Panoramica [#overview] Chiama `withGT` con un'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'interno della funzione di callback fanno riferimento a quell'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(locale: string, fn: () => T): T ``` *Nota: `withGT` usa internamente l'async local storage per associare l'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'impostazione regionale viene associata solo per la durata di `fn`. Ogni richiesta concorrente mantiene la propria impostazione regionale. * **Risoluzione dell'impostazione regionale.** L'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'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'impostazione regionale da associare alla callback. | `string` | No | — | | [`fn`](#fn) | La funzione da eseguire nel contesto dell'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'interno del callback. ### `fn` [#fn] **Tipo** `() => T` · **Obbligatorio** Una callback da eseguire nel contesto dell'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'impostazione regionale è limitato al callback e non si estende ad altre richieste simultanee. * `withGT` funziona sia con callback sincroni che asincroni.