# gt-node: General Translation Node.js SDK: withGT
URL: https://generaltranslation.com/es/docs/node/reference/functions/with-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Asocia una configuración regional durante el ciclo de vida de una solicitud para que las funciones de General Translation usen esa configuración regional. Referencia de la API para withGT.

Envuelve una función callback para proporcionar contexto de configuración regional a las funciones de traducción. En un servidor Node.js, cada solicitud suele corresponder a un usuario distinto con una configuración regional diferente, y `withGT` establece la configuración regional para cada función de General Translation que se llame dentro de la callback.

## Resumen general [#overview]

Llama a `withGT` con una configuración regional y una función. Todas las llamadas 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) y [`getLocale`](/docs/node/reference/functions/get-locale) dentro de la función de callback se resuelven según esa configuración regional.

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

app.get('/api/greeting', (req, res) => {
  withGT(req.locale, () => {
    // Las funciones de traducción dentro de aquí usan req.locale
  });
});
```

Firma:

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

*Nota: `withGT` usa almacenamiento local asíncrono internamente para limitar la configuración regional a la solicitud actual. El contexto no se propaga a otras solicitudes concurrentes.*

## Cómo funciona [#how-it-works]

* **Configuración regional delimitada.** La configuración regional se aplica solo durante la ejecución de `fn`. Las solicitudes simultáneas mantienen cada una su propia configuración regional.
* **Resolución de la configuración regional.** La configuración regional proporcionada se resuelve según tus `locales` configuradas; si el valor no es compatible, se usa `defaultLocale`.
* **Síncrono o asíncrono.** `fn` puede ser síncrona o asíncrona, y `withGT` devuelve lo mismo que `fn`.
* **Requiere inicialización.** [`initializeGT`](/docs/node/reference/functions/initialize-gt) debe ejecutarse antes de `withGT`; de lo contrario, se producirá un error.

## Parámetros [#parameters]

| Parámetro           | Descripción                                                                 | Tipo      | Opcional | Predeterminado |
| ------------------- | --------------------------------------------------------------------------- | --------- | -------- | -------------- |
| [`locale`](#locale) | La configuración regional que se vinculará al callback.                     | `string`  | No       | —              |
| [`fn`](#fn)         | La función que se ejecutará dentro del ámbito de la configuración regional. | `() => T` | No       | —              |

### `locale` [#locale]

**Type** `string` · **Requerido**

Un [código de configuración regional](/docs/platform/core/reference/utility-functions/locales/is-valid-locale) (por ejemplo, `'es'`, `'fr-CA'`) que se usará en las traducciones dentro del callback.

### `fn` [#fn]

**Type** `() => T` · **Obligatorio**

Una función callback que se ejecuta con el contexto de configuración regional indicado. Puede ser síncrona o asíncrona.

## Devuelve [#returns]

**Tipo** `T`

El valor que devuelve la función callback `fn`.

## Ejemplos [#examples]

```ts title="server.js"
// Middleware de 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"
// Envolviendo un manejador de solicitud asíncrono
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!');
  });
}
```

## Notas [#notes]

* Se debe llamar a [`initializeGT`](/docs/node/reference/functions/initialize-gt) antes de usar `withGT`; de lo contrario, se producirá un error.
* El contexto de la configuración regional se limita al callback y no se propaga a otras solicitudes concurrentes.
* `withGT` funciona tanto con callbacks síncronos como asíncronos.

## Sitemap

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