# gt-node: General Translation Node.js SDK: Traducir cadenas
URL: https://generaltranslation.com/es/docs/node/guides/translating-strings.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Cómo traducir cadenas del manejador de solicitud, mensajes registrados y contenido dinámico con General Translation en gt-node.

`gt-node` ofrece tres formas de traducir una cadena. La que uses depende de dónde esté la cadena y de si se conoce de antemano.

*Nota: las tres se ejecutan dentro de un ámbito [`withGT`](/docs/node/guides/detecting-locale) para que tengan acceso a la configuración regional de la solicitud.*

## Traduce las cadenas del manejador de solicitud con `getGT` [#get-gt]

Para las cadenas escritas directamente en un manejador de solicitud, espera [`getGT`](/docs/node/reference/functions/get-gt) para obtener una función de traducción y luego llámala. Interpola los valores con marcadores de posición de ICU.

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

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

Esta es la opción predeterminada para cadenas aisladas. Agrega `$context` para desambiguar un término.

## Reutiliza mensajes registrados con `msg` [#msg]

Para las cadenas definidas fuera de un manejador de solicitud —como constantes compartidas, mensajes de error o enums— regístralas con [`msg`](/docs/node/reference/functions/msg) a nivel de módulo y luego recupéralas con [`getMessages`](/docs/node/reference/functions/get-messages).

```ts
import { msg, getMessages } from 'gt-node';

const NOT_FOUND = msg('Resource not found.');

app.use(async (req, res) => {
  const m = await getMessages();
  res.status(404).json({ error: m(NOT_FOUND) });
});
```

## Traduce contenido dinámico con `tx` [#tx]

Para el contenido que no se conoce de antemano y no está pre-generado, usa [`tx`](/docs/node/reference/functions/tx) para traducirlo en tiempo de ejecución. Hace una solicitud de red si no hay un valor en caché, así que resérvalo para cadenas realmente dinámicas.

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

const translated = await tx(`Status: ${status}`);
```

*Nota: [`tx`](/docs/node/reference/functions/tx) no usa marcadores de posición de ICU; inserta los valores con un literal de plantilla antes de llamarlo.*

## Elige un enfoque [#choose]

* Cadenas puntuales del manejador de solicitud → [`getGT`](/docs/node/reference/functions/get-gt).
* Constantes y errores compartidos → [`msg`](/docs/node/reference/functions/msg) con [`getMessages`](/docs/node/reference/functions/get-messages).
* Contenido dinámico e impredecible → [`tx`](/docs/node/reference/functions/tx).
* Texto centralizado basado en claves → un diccionario con [`getTranslations`](/docs/node/reference/functions/get-translations).

## Next steps

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

## Sitemap

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