# gt-node: General Translation Node.js SDK: withGT URL: https://generaltranslation.com/fr/docs/node/reference/functions/with-gt.mdx --- title: withGT description: Associe un paramètre régional pendant la durée d’une requête afin que les fonctions de General Translation l’utilisent. Référence API pour withGT. --- Encapsule un callback afin de fournir un contexte de paramètre régional aux fonctions de traduction. Sur un serveur Node.js, chaque requête traite généralement un utilisateur différent avec un paramètre régional différent, et `withGT` définit le paramètre régional pour chaque fonction de General Translation appelée dans le callback. ## Vue d’ensemble [#overview] Appelez `withGT` avec un paramètre régional et une fonction. Tous les appels à [`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) et [`getLocale`](/docs/node/reference/functions/get-locale) à l’intérieur de la callback sont résolus en fonction de ce paramètre régional. ```ts import { withGT } from 'gt-node'; app.get('/api/greeting', (req, res) => { withGT(req.locale, () => { // Les fonctions de traduction à l'intérieur utilisent req.locale }); }); ``` Signature : ```ts withGT(locale: string, fn: () => T): T ``` *Remarque : `withGT` utilise en interne AsyncLocalStorage pour associer le paramètre régional à la requête en cours. Le contexte ne déborde pas sur les autres requêtes simultanées.* ## Fonctionnement [#how-it-works] * **Paramètre régional limité à la portée.** Le paramètre régional n’est défini que pendant l’exécution de `fn`. Les requêtes simultanées conservent chacune leur propre paramètre régional. * **Résolution du paramètre régional.** Le paramètre régional transmis est résolu à partir des `locales` configurés ; une valeur non prise en charge utilise `defaultLocale`. * **Synchrone ou asynchrone.** `fn` peut être synchrone ou asynchrone, et `withGT` renvoie simplement ce que `fn` renvoie. * **Nécessite une configuration.** [`initializeGT`](/docs/node/reference/functions/initialize-gt) doit être exécuté avant `withGT`, sinon une erreur est générée. ## Paramètres [#parameters] | Paramètre | Description | Type | Facultatif | Par défaut | | ------------------- | -------------------------------------------------------------- | --------- | ---------- | ---------- | | [`locale`](#locale) | Le paramètre régional à associer au callback. | `string` | Non | — | | [`fn`](#fn) | La fonction à exécuter dans le contexte du paramètre régional. | `() => T` | Non | — | ### `locale` [#locale] **Type** `string` · **Obligatoire** Un [code de langue](/docs/platform/core/reference/utility-functions/locales/is-valid-locale) (par exemple, `'es'`, `'fr-CA'`) à utiliser pour les traductions au sein du callback. ### `fn` [#fn] **Type** `() => T` · **Obligatoire** Un callback à exécuter dans le contexte du paramètre régional donné. Peut être synchrone ou asynchrone. ## Renvoie [#returns] **Type** `T` La valeur renvoyée par le `callback` `fn`. ## Exemples [#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" // Encapsulation d'un gestionnaire asynchrone 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!'); }); } ``` ## Notes [#notes] * [`initializeGT`](/docs/node/reference/functions/initialize-gt) doit être appelé avant d’utiliser `withGT`, sinon une erreur est générée. * Le contexte du paramètre régional est limité au callback et n’affecte pas les autres requêtes concurrentes. * `withGT` fonctionne avec des callbacks synchrones et asynchrones.