# General Translation Platform: Constructor URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class/constructor.mdx --- title: Constructor 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 `{}``) 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 personalizada de la API para implementaciones enterprise. | `string` | Sí | — | | [`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** URL base personalizada de la API, que se usa para despliegues empresariales que apuntan a un endpoint autoalojado o específico de la región. ### `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.*