# General Translation Platform: setConfig URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class/set-config.mdx --- title: setConfig description: Обновляет конфигурацию существующего экземпляра GT. API-справочник для setConfig. --- Обновляет конфигурацию существующего экземпляра [GT](/docs/platform/core/reference/gt-class/constructor). Используйте его, чтобы изменить учетные данные API, локали и другие параметры после того, как экземпляр был создан с помощью General Translation. ## Обзор [#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`.