# gt-node: General Translation Node.js SDK: Inicio rápido
URL: https://generaltranslation.com/es/docs/node/quickstart.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Instala la biblioteca `gt-node` de General Translation y traduce tu primer servicio de Node.js.

`gt-node` traduce cadenas en servidores y servicios de Node.js. Lo inicializas una sola vez, asocias la configuración regional a cada solicitud entrante y traduces cadenas en tus manejadores de solicitud.

Usa `gt-node` para servicios de backend, como APIs de Express o Fastify. Para aplicaciones de React, usa [`gt-react`](/docs/react/react-quickstart); para Next.js, usa [`gt-next`](/docs/react/nextjs-quickstart).

*Nota: `gt-node` requiere Node.js 18 o posterior. La asociación de la configuración regional por solicitud usa `AsyncLocalStorage` de `node:async_hooks`.*

## Lo que hace gt-node [#what-it-does]

`gt-node` te ofrece:

* **traducción de cadenas** con [`getGT`](/docs/node/reference/functions/get-gt), para cadenas locales del manejador de solicitud.
* **Mensajes registrados** con [`msg`](/docs/node/reference/functions/msg) y [`getMessages`](/docs/node/reference/functions/get-messages), para constantes compartidas y errores.
* **Traducción en tiempo de ejecución** con [`tx`](/docs/node/reference/functions/tx), para contenido dinámico.
* Asociación de **configuración regional por solicitud** con [`withGT`](/docs/node/reference/functions/with-gt), además de utilidades para detectar la configuración regional de la solicitud.

## Inicio rápido [#quickstart]

Instala la biblioteca, inicialízala, asocia una configuración regional a cada solicitud y traduce una cadena.

### 1. Instala `gt-node`

Instala `gt-node` y Express como dependencias y la [CLI de `gt`](/docs/cli/quickstart) como dependencia de desarrollo.

<Tabs items={['npm', 'yarn', 'bun', 'pnpm']}>
  <Tab value="npm">
    ```bash
    npm install gt-node express && npm install gt --save-dev
    ```
  </Tab>

  <Tab value="yarn">
    ```bash
    yarn add gt-node express && yarn add --dev gt
    ```
  </Tab>

  <Tab value="bun">
    ```bash
    bun add gt-node express && bun add --dev gt
    ```
  </Tab>

  <Tab value="pnpm">
    ```bash
    pnpm add gt-node express && pnpm add --save-dev gt
    ```
  </Tab>
</Tabs>

*Nota: El código del servidor a continuación usa la sintaxis `import` de módulos ES. Configura `"type": "module"` en tu `package.json` para que Node.js pueda ejecutarlo.*

### 2. Inicializa la biblioteca

Haz que tu project ID y la clave de API de desarrollo estén disponibles para el proceso de Node.js:

```bash
export GT_PROJECT_ID="your-project-id"
export GT_DEV_API_KEY="gtx-dev-..."
```

Llama a [`initializeGT`](/docs/node/reference/functions/initialize-gt) una sola vez al inicio, antes de procesar solicitudes. Pasa tus locales directamente. Cuando se omiten los campos de credenciales, `gt-node` lee `GT_PROJECT_ID`, `GT_API_KEY` y `GT_DEV_API_KEY` del entorno; no lee `gt.config.json` automáticamente.

```ts title="server.js"
import { initializeGT } from 'gt-node';

initializeGT({
  defaultLocale: 'en',
  locales: ['en', 'es', 'fr'],
});
```

### 3. Asocia la configuración regional de la solicitud

Envuelve cada solicitud con [`withGT`](/docs/node/reference/functions/with-gt) para que las funciones de traducción sepan cuál es la configuración regional de destino. Usa [`getRequestLocale`](/docs/node/reference/functions/get-request-locale) para detectarla a partir de la cabecera `Accept-Language`.

```js title="server.js"
import express from 'express';
import { withGT, getRequestLocale } from 'gt-node';

const app = express();
app.use((req, res, next) => withGT(getRequestLocale(req), () => next()));
```

### 4. Traduce una cadena

Dentro de un manejador de solicitud, usa [`getGT`](/docs/node/reference/functions/get-gt) para obtener una función de traducción para la configuración regional de la solicitud y luego traduce cadenas. Interpola valores con marcadores de posición de ICU.

```js title="server.js"
import { getGT } from 'gt-node';

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

app.listen(3000, () => console.log('Listening on http://localhost:3000'));
```

### 5. Ejecuta y verifica

Combina los fragmentos de los pasos 2–4 en un único archivo `server.js` y luego inicia el servidor. Antes de generar traducciones, el manejador de solicitud devuelve tu cadena fuente, lo que confirma que el servicio está configurado correctamente.

```bash
node server.js
```

En otra terminal, envía una solicitud:

```bash
curl http://localhost:3000/api/greeting
```

```json title="Output"
{"message":"Hello, Alice!"}
```

### 6. Genera traducciones

Ejecuta la CLI antes de desplegar en producción para que las traducciones estén disponibles en tiempo de ejecución.

```bash
npx gt translate
```

*Nota: [`gt translate`](/docs/cli/reference/commands/translate) lee un `gt.config.json` y requiere un project ID y una clave de API. Ejecuta primero [`npx gt init`](/docs/cli/reference/commands/init) para crearlos.*

(Consulta [Traducir cadenas](/docs/node/guides/translating-strings) para saber cuándo usar [`getGT`](/docs/node/reference/functions/get-gt), [`msg`](/docs/node/reference/functions/msg) y [`tx`](/docs/node/reference/functions/tx), y [Configurar gt-node](/docs/node/guides/configuring) para obtener información sobre las credenciales y la entrega).

## Next steps

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

## Sitemap

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