# 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`.
* **Identidades configuradas.** Usa códigos estándar como `en-US`; los códigos configurados se conservan tal como los escribiste. Para aceptar otra grafía, como `en-us`, mapéala con [`customMapping`](/docs/platform/core/reference/types/custom-mapping): `{ 'en-us': { code: 'en-US' } }`. `sourceLocale`, `targetLocale` y cada entrada de `locales` se validan con el mapeo efectivo, incluidos los alias personalizados. Los códigos no válidos generan un error.
* **Códigos de configuración regional devueltos.** Las respuestas de proyectos y archivos usan, siempre que sea posible, las grafías y los alias que configuraste. Si varios códigos configurados identifican la misma configuración regional, se usa la primera coincidencia, a menos que tu solicitud los distinga. No se sustituyen por otros dialectos. Los resultados de la traducción en runtime usan los códigos de configuración regional de la API.
* **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 Project para el servicio de traducción.                                 | `string`                                                              | Sí       | env `GT_API_KEY`      |
| [`devApiKey`](#dev-api-key)        | Clave de API alternativa del Project, usada cuando `apiKey` no está definida.           | `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 Project para el servicio de traducción. Se lee de `GT_API_KEY` cuando no se proporciona. Las operaciones de la API requieren una API Key (incluido el alias obsoleto `devApiKey`), además de un ID del Project y permiso para la operación.

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

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

Alias de compatibilidad obsoleto de `apiKey`; no es un tipo de clave independiente para un entorno específico. Se usa cuando `apiKey` no está definida. Se obtiene de `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 `GT_PROJECT_ID`. Las operaciones de la API requieren este ID además de las credenciales.

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

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

Configuración regional de origen predeterminada para las traducciones, por ejemplo `en`. Se conserva la grafía tal como se configuró y se valida con cualquier `customMapping`, por lo que se aceptan alias personalizados.

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

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

Configuración regional de destino predeterminada para las traducciones, como `es`. La grafía configurada se conserva y se valida con cualquier `customMapping`, por lo que se aceptan alias personalizados.

### `locales` [#locales]

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

Lista de identificadores de configuración regional compatibles. Cada código se conserva sin cambios y se valida con el `customMapping` efectivo; aquí también se aceptan alias personalizados.

### `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 una API Key y un `projectId`.
* Se conservan las grafías y los alias de configuración regional configurados; los códigos devueltos siguen las reglas anteriores.
* Todos los campos de configuración regional se validan según el mapeo personalizado vigente.
* Los mapeos personalizados tienen prioridad sobre la validación y las propiedades estándar de BCP 47.
* Usa [`setConfig`](/docs/platform/core/reference/gt-class/set-config) para reconfigurar una instancia, en lugar de asignar propiedades directamente.

*Nota: `GT` extiende [`GTRuntime`](/docs/platform/core/reference/runtime), que proporciona la traducción en runtime, el formato y las configuraciones regionales. La gestión de archivos y proyectos sigue estando en `GT`.*

## Sitemap

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