# General Translation Platform: Constructor
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class/constructor.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Inicializa una instancia de GT con claves de API, la configuración del proyecto, configuraciones regionales predeterminadas y mapeos de configuración regional. Referencia de API para Constructor.

Crea una nueva instancia de `GT`, el punto de entrada a toda la funcionalidad de traducción, formato y configuración regional de General Translation. Llámala una vez y reutiliza la instancia en toda la aplicación.

## Descripción general [#overview]

Crea una instancia de `GT` con un objeto de configuración opcional. Las credenciales y las configuraciones regionales que definas aquí pasarán a ser los valores predeterminados de todas las llamadas a métodos de la instancia.

```typescript
import { GT } from 'generaltranslation';

const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id',
  sourceLocale: 'en',
  targetLocale: 'es',
});
```

Firma:

```typescript
new GT(params?: GTConstructorParams): GT
```

*Nota: Puedes omitir `apiKey`, `devApiKey` y `projectId`; el constructor los toma de las variables de entorno `GT_API_KEY`, `GT_DEV_API_KEY` y `GT_PROJECT_ID` cuando están definidas.*

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

* **Respaldo con variables de entorno.** Cuando no se pasan `apiKey`, `devApiKey` o `projectId`, el constructor los busca en las variables de entorno `GT_API_KEY`, `GT_DEV_API_KEY` y `GT_PROJECT_ID`.
* **Estandarización de la configuración regional y, después, validación.** Cada código de configuración regional proporcionado (`sourceLocale`, `targetLocale` y cada entrada de `locales`) primero se estandariza a su forma canónica BCP 47 y luego se valida. Los **valores almacenados son las formas estandarizadas/normalizadas**, no las cadenas originales que pasaste. El constructor genera un error si los códigos no son válidos.
* **El mapeo personalizado se aplica a `sourceLocale`/`targetLocale`, pero no a `locales`.** `sourceLocale` y `targetLocale` se validan **con** [`customMapping`](/docs/platform/core/reference/types/custom-mapping), por lo que se acepta un alias personalizado para ellos. Cada entrada de `locales` se valida **sin** el mapeo, por lo que se rechaza un alias de `customMapping` si aparece dentro de `locales`.
* **Precedencia del mapeo personalizado.** Un [`customMapping`](/docs/platform/core/reference/types/custom-mapping) te permite definir alias de configuración regional, omitir la validación estándar de BCP 47 y reemplazar las propiedades estándar de la configuración regional (nombre, emoji, etc.). Los mapeos personalizados tienen prioridad sobre los datos estándar de BCP 47.

## Parámetros [#parameters]

El constructor acepta un único objeto opcional [`GTConstructorParams`](/docs/platform/core/reference/types/gt-constructor-params) (el valor predeterminado es &#96;{}&#96;&#96;) con las siguientes propiedades:

| Parámetro                          | Descripción                                                                             | Tipo                                                                  | Opcional | Predeterminado        |
| ---------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -------- | --------------------- |
| [`apiKey`](#api-key)               | Clave de API de producción para el servicio de traducción.                              | `string`                                                              | Sí       | env `GT_API_KEY`      |
| [`devApiKey`](#dev-api-key)        | Clave de API de desarrollo, que tiene prioridad en desarrollo.                          | `string`                                                              | Sí       | env `GT_DEV_API_KEY`  |
| [`projectId`](#project-id)         | Identificador único del proyecto.                                                       | `string`                                                              | Sí       | env `GT_PROJECT_ID`   |
| [`sourceLocale`](#source-locale)   | Configuración regional de origen predeterminada para las traducciones.                  | `string`                                                              | Sí       | —                     |
| [`targetLocale`](#target-locale)   | Configuración regional de destino predeterminada para las traducciones.                 | `string`                                                              | Sí       | —                     |
| [`locales`](#locales)              | Códigos de configuración regional admitidos.                                            | `string[]`                                                            | Sí       | —                     |
| [`baseUrl`](#base-url)             | URL base de la API.                                                                     | `string`                                                              | Sí       | `https://api.gtx.dev` |
| [`customMapping`](#custom-mapping) | Mapeos personalizados de códigos de configuración regional y reemplazos de propiedades. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sí       | —                     |

### `apiKey` [#api-key]

**Tipo** `string` · **Opcional** · **Predeterminado** variable de entorno `GT_API_KEY`

Clave de API de producción para el servicio de traducción. Se lee de la variable de entorno `GT_API_KEY` cuando no se proporciona. Obligatoria para cualquier operación de la API.

### `devApiKey` [#dev-api-key]

**Tipo** `string` · **Opcional** · **Predeterminado** `GT_DEV_API_KEY` env

Clave de API de desarrollo. Tiene prioridad sobre `apiKey` en entornos de desarrollo. Se obtiene de la variable de entorno `GT_DEV_API_KEY` cuando no se proporciona.

### `projectId` [#project-id]

**Tipo** `string` · **Opcional** · **Valor predeterminado** `GT_PROJECT_ID` env

Identificador único del proyecto. Si no se proporciona, se lee de la variable de entorno `GT_PROJECT_ID`. Es obligatorio para cualquier operación de la API.

### `sourceLocale` [#source-locale]

**Tipo** `string` · **Opcional**

Configuración regional de origen predeterminada para las traducciones, por ejemplo `en`. Se estandariza a su forma canónica, se almacena en esa forma normalizada y luego se valida junto con cualquier `customMapping` (por lo que aquí se acepta un alias personalizado).

### `targetLocale` [#target-locale]

**Tipo** `string` · **Opcional**

Configuración regional de destino predeterminada para las traducciones, como `es`. Se estandariza a su forma canónica y se almacena en esa forma normalizada; luego se valida **con** cualquier `customMapping` (por lo que aquí se acepta un alias personalizado).

### `locales` [#locales]

**Tipo** `string[]` · **Opcional**

Lista de códigos de configuración regional compatibles. Cada código se estandariza a su forma canónica y se almacena en esa forma normalizada; después se valida **sin** `customMapping`, por lo que un alias de `customMapping` válido para `sourceLocale`/`targetLocale` se rechaza si aparece dentro de `locales`.

### `baseUrl` [#base-url]

**Tipo** `string` · **Opcional** · **Predeterminado** `https://api.gtx.dev`

URL base de la API. Reemplázala solo cuando tu despliegue use un endpoint diferente.

### `customMapping` [#custom-mapping]

**Tipo** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Opcional**

Mapeos personalizados de códigos de configuración regional y reemplazos de propiedades. Úsalo para (1) definir alias para los códigos de configuración regional, (2) omitir la validación estándar de BCP 47 y (3) reemplazar las propiedades estándar de configuración regional de BCP 47, como el nombre y el emoji.

## Devuelve [#returns]

**Tipo** `GT`

Una nueva instancia de `GT` con todos los métodos de traducción, formato y configuración regional disponibles.

## Ejemplos [#examples]

```typescript
import { GT } from 'generaltranslation';

// Configuración mínima — lee las credenciales de las variables de entorno
const gt = new GT();
```

```typescript
// Con credenciales de API
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'fr',
});
```

```typescript
// Con un alias de configuración regional personalizado: usa `cn` como alias de `zh`.
// La API de General Translation no admite `cn`, por lo que se necesita un mapeo personalizado.
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'es',
  customMapping: {
    cn: { code: 'zh' },
  },
});
```

```typescript
// Los mapeos personalizados también pueden sobreescribir nombres, emojis y otras propiedades de la configuración regional
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'es',
  customMapping: { 'en-US': { name: 'Mandarin', emoji: '🇫🇷' } },
});
```

## Notas [#notes]

* Todos los parámetros son opcionales, pero las operaciones de la API requieren `apiKey` (o `devApiKey`) y `projectId`.
* El constructor estandariza cada código de configuración regional a su forma canónica (el valor almacenado es la forma normalizada), luego lo valida y lanza un error si el código no es válido.
* `sourceLocale` y `targetLocale` se validan con `customMapping`; cada entrada de `locales` se valida sin él.
* Los mapeos personalizados prevalecen sobre la validación estándar de BCP 47 y sus propiedades.

*Nota: la clase `GT` extiende `GTRuntime`. En la versión 9.0, las utilidades de traducción, formato y configuración regional están en `GTRuntime`, mientras que los métodos del flujo de trabajo de archivos (uploads, enqueue, downloads, etc.) están en `GT`. Tanto el constructor como [`setConfig`](/docs/platform/core/reference/gt-class/set-config) están definidos en `GTRuntime`, por lo que el uso no se ve afectado gracias a la herencia.*

## Sitemap

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