# General Translation Platform: setConfig
URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class/set-config.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Обновляет конфигурацию существующего экземпляра GT. API-справочник для setConfig.

Измените учетные данные API, локали и другие параметры существующего экземпляра [GT](/docs/platform/core/reference/gt-class/constructor) после его создания, не создавая новый.

## Обзор [#overview]

Вызовите `setConfig`, чтобы изменить экземпляр на месте. Новые значения объединяются с конфигурацией, переданной в конструктор, и применяются ко всем последующим вызовам методов.

```typescript
const gt = new GT();

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

Сигнатура:

```typescript
setConfig(params: GTConstructorParams): void
```

*Примечание: `setConfig` выполняется синхронно и возвращает `void`; она обновляет экземпляр на месте.*

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

* **Сначала стандартизация локали, затем валидация.** Каждый указанный код локали (`sourceLocale`, `targetLocale` и каждый элемент в `locales`) сначала приводится к каноническому виду BCP 47, а затем проверяется. **Сохраняются стандартизованные/нормализованные значения**, а не исходные строки, которые вы передали. `setConfig` выбрасывает ошибку при недопустимых кодах.
* **Пользовательское сопоставление применяется к `sourceLocale`/`targetLocale`, но не к `locales`.** `sourceLocale` и `targetLocale` проверяются **с** `customMapping`, поэтому для них допускается пользовательский алиас. Каждый элемент `locales` проверяется **без** этого сопоставления, поэтому алиас из `customMapping` будет отклонён, если он указан внутри `locales`.
* **Слияние конфигурации.** Новые значения объединяются с конфигурацией, переданной в конструктор. Однако `customMapping` полностью заменяет существующее сопоставление, а не объединяется с ним.
* **Без повторного чтения переменных окружения.** Переменные окружения (`GT_API_KEY`, `GT_DEV_API_KEY`, `GT_PROJECT_ID`) не перечитываются при вызове `setConfig`.
* **Неатомарно.** Если валидация прервётся на середине (например, на второй локали), более ранние свойства уже могут быть установлены.

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

`setConfig` принимает обязательный объект [`GTConstructorParams`](/docs/platform/core/reference/types/gt-constructor-params) с теми же свойствами, что и [конструктор](/docs/platform/core/reference/gt-class/constructor):

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

Сам объект `params` обязателен, хотя все его свойства необязательны — передавайте только те настройки, которые хотите изменить.

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

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

API-ключ для production-среды сервиса перевода.

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

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

API-ключ для разработки. В среде разработки используется вместо `apiKey`.

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

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

Уникальный идентификатор проекта.

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

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

Локаль-источник по умолчанию для переводов. Она приводится к канонической форме и сохраняется в нормализованном виде, а затем проверяется **с учетом** любого `customMapping` (поэтому здесь допускается пользовательский алиас).

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

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

Целевая локаль по умолчанию для переводов. Приводится к канонической форме и сохраняется в этом нормализованном виде, а затем проверяется **с учётом** любого `customMapping` (поэтому пользовательский алиас здесь допускается).

### `locales` [#locales]

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

Массив кодов поддерживаемых локалей. Каждый код приводится к канонической форме и сохраняется в нормализованном виде, после чего проверяется **без** `customMapping` — поэтому алиас `customMapping`, допустимый для `sourceLocale`/`targetLocale`, будет отклонён, если встретится в `locales`.

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

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

Пользовательский базовый URL-адрес API.

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

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

Пользовательские сопоставления кодов локалей и переопределения свойств. В отличие от других настроек, новый `customMapping` полностью заменяет существующее сопоставление, а не объединяется с ним.

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

**Тип** `void`

Метод обновляет конфигурацию экземпляра на месте и ничего не возвращает.

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

```typescript
const gt = new GT({
  sourceLocale: 'en',
  targetLocale: 'es',
});

// Переключить целевую локаль с испанского на французский
gt.setConfig({
  targetLocale: 'fr',
});
```

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

* Изменения конфигурации сразу вступают в силу для последующих вызовов метода.
* Каждый код локали перед сохранением приводится к канонической форме (сохраняется нормализованное значение), а затем проходит проверку.
* `sourceLocale` и `targetLocale` проверяются с учетом `customMapping`; каждая запись в `locales` проверяется без него.
* При вызове `setConfig` переменные окружения не перечитываются.
* Пользовательские сопоставления полностью заменяют существующие (слияние не выполняется).
* Обновление **не атомарно** — если проверка завершится ошибкой на одном из этапов, предыдущие свойства уже могут быть установлены.
* Метод синхронный и возвращает `void`.

## Sitemap

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