# General Translation Platform: Конструктор
URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class/constructor.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Инициализируйте экземпляр GT с помощью API-ключей, настроек проекта, локалей по умолчанию и сопоставлений локалей. Справка по API для конструктора.

Создает новый экземпляр `GT` — точку входа ко всем функциям перевода, форматирования и работы с локалями в General Translation. Вызовите его один раз, а затем повторно используйте этот экземпляр во всем приложении.

## Обзор [#overview]

Создайте экземпляр `GT`, при необходимости передав объект конфигурации. Учетные данные и локали, указанные здесь, будут использоваться по умолчанию во всех вызовах методов этого экземпляра.

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

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

Сигнатура:

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

*Примечание: можно не указывать `apiKey`, `devApiKey` и `projectId` — если заданы переменные окружения `GT_API_KEY`, `GT_DEV_API_KEY` и `GT_PROJECT_ID`, конструктор считает их значения из них.*

## Как это работает [#how-it-works]

* **Резервное значение из окружения.** Если `apiKey`, `devApiKey` или `projectId` не переданы, конструктор ищет их в переменных окружения `GT_API_KEY`, `GT_DEV_API_KEY` и `GT_PROJECT_ID`.
* **Настроенные идентификаторы.** Используйте стандартные коды, например `en-US`; настроенные коды сохраняются в том виде, в котором они записаны. Чтобы принимать другое написание, например `en-us`, сопоставьте его с помощью [`customMapping`](/docs/platform/core/reference/types/custom-mapping): `{ 'en-us': { code: 'en-US' } }`. `sourceLocale`, `targetLocale` и каждый элемент в `locales` проверяются по действующему сопоставлению с учётом пользовательских алиасов. При недопустимых кодах выбрасывается исключение.
* **Возвращаемые коды локалей.** В ответах для проектов и файлов по возможности используются настроенные вами написания и алиасы. Если одну и ту же локаль обозначают несколько настроенных кодов, используется первое совпадение, если только в запросе они не различаются явно. Другие диалекты не подставляются. В результатах runtime-перевода используются коды локалей API.
* **Приоритет пользовательского сопоставления.** [`customMapping`](/docs/platform/core/reference/types/custom-mapping) позволяет задавать алиасы локалей, переопределять стандартную проверку BCP 47 и стандартные свойства локали (имя, эмодзи и т. д.). Пользовательские сопоставления имеют приоритет над стандартными данными BCP 47.

## Параметры [#parameters]

Конструктор принимает один необязательный объект [`GTConstructorParams`](/docs/platform/core/reference/types/gt-constructor-params) (по умолчанию `{}`) со следующими свойствами:

| Параметр                           | Описание                                                                | Тип                                                                   | Необязательный | По умолчанию                          |
| ---------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------- | -------------- | ------------------------------------- |
| [`apiKey`](#api-key)               | API-ключ проекта для сервиса перевода.                                  | `string`                                                              | Да             | переменная окружения `GT_API_KEY`     |
| [`devApiKey`](#dev-api-key)        | Альтернативный API-ключ проекта, используется, если `apiKey` не задан.  | `string`                                                              | Да             | переменная окружения `GT_DEV_API_KEY` |
| [`projectId`](#project-id)         | Уникальный идентификатор проекта.                                       | `string`                                                              | Да             | переменная окружения `GT_PROJECT_ID`  |
| [`sourceLocale`](#source-locale)   | Локаль-источник для переводов по умолчанию.                             | `string`                                                              | Да             | —                                     |
| [`targetLocale`](#target-locale)   | Целевая локаль для переводов по умолчанию.                              | `string`                                                              | Да             | —                                     |
| [`locales`](#locales)              | Коды поддерживаемых локалей.                                            | `string[]`                                                            | Да             | —                                     |
| [`baseUrl`](#base-url)             | Базовый URL API.                                                        | `string`                                                              | Да             | `https://api.gtx.dev`                 |
| [`customMapping`](#custom-mapping) | Пользовательские сопоставления кодов локалей и переопределения свойств. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Да             | —                                     |

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

**Тип** `string` · **Необязательный** · **По умолчанию** переменная окружения `GT_API_KEY`

API-ключ проекта для сервиса перевода. Если не указан, считывается из `GT_API_KEY`. Для API-операций требуются API-ключ (в том числе устаревший алиас `devApiKey`), ID проекта и разрешение на выполнение операции.

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

**Тип** `string` · **Необязательный** · **По умолчанию** переменная окружения `GT_DEV_API_KEY`

Устаревший алиас `apiKey`, оставленный для совместимости; это не отдельный тип ключа для определённого окружения. Используется, когда `apiKey` не задан. Если не указан, считывается из `GT_DEV_API_KEY`.

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

**Тип** `string` · **Необязательный** · **По умолчанию** — `GT_PROJECT_ID` env

Уникальный идентификатор проекта. Если значение не указано, оно считывается из `GT_PROJECT_ID`. Для API-операций помимо учётных данных требуется этот ID.

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

**Тип** `string` · **Необязательно**

Локаль-источник по умолчанию, например `en`. Написание, указанное в конфигурации, сохраняется без изменений и проверяется с учётом любого `customMapping`, поэтому допускаются пользовательские алиасы.

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

**Тип** `string` · **Необязательно**

Целевая локаль для переводов по умолчанию, например `es`. Написание, заданное в конфигурации, сохраняется без изменений и проверяется с учётом любого `customMapping`, поэтому пользовательские алиасы также принимаются.

### `locales` [#locales]

**Тип** `string[]` · **Необязательно**

Массив поддерживаемых идентификаторов локалей. Каждый код сохраняется без изменений и проверяется с учётом действующего `customMapping`; пользовательские алиасы здесь также допускаются.

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

**Тип** `string` · **Необязательно** · **По умолчанию** `https://api.gtx.dev`

Базовый URL API. Переопределяйте его только в том случае, если ваше развёртывание использует другой эндпоинт.

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

**Тип** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Необязательно**

Пользовательские mappings кодов локалей и переопределения свойств. Используйте этот параметр, чтобы (1) задавать алиасы для кодов локалей, (2) переопределять стандартную проверку BCP 47 и (3) переопределять стандартные свойства локали BCP 47, такие как имя и эмодзи.

## Возвращает [#returns]

**Тип** `GT`

Новый экземпляр `GT` со всеми доступными методами перевода, форматирования и работы с локалью.

## Примеры [#examples]

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

// Минимальная настройка — считывает учётные данные из переменных окружения
const gt = new GT();
```

```typescript
// С учётными данными API
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'fr',
});
```

```typescript
// С пользовательским алиасом локали: используйте `cn` как алиас для `zh`.
// General Translation API не поддерживает `cn`, поэтому необходимо пользовательское сопоставление.
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'es',
  customMapping: {
    cn: { code: 'zh' },
  },
});
```

```typescript
// Пользовательские сопоставления также могут переопределять названия, эмодзи и другие свойства локали
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'es',
  customMapping: { 'en-US': { name: 'Mandarin', emoji: '🇫🇷' } },
});
```

## Примечания [#notes]

* Все параметры необязательны, однако для API-операций требуются API-ключ и `projectId`.
* Написание локалей и алиасы, заданные в конфигурации, сохраняются без изменений; возвращаемые коды формируются по описанным выше правилам.
* Все поля локалей проверяются на соответствие действующему пользовательскому сопоставлению.
* Пользовательские сопоставления имеют приоритет над стандартной проверкой и свойствами BCP 47.
* Для перенастройки экземпляра используйте [`setConfig`](/docs/platform/core/reference/gt-class/set-config), а не прямое присваивание свойств.

*Примечание: `GT` расширяет [`GTRuntime`](/docs/platform/core/reference/runtime), который отвечает за runtime-перевод, форматирование и локали. Управление файлами и проектами по-прежнему выполняется через `GT`.*

## Sitemap

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