# General Translation Platform: Конструктор URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class/constructor.mdx --- title: Конструктор description: Инициализируйте экземпляр GT с помощью API-ключей, настроек проекта, локалей по умолчанию и сопоставлений локалей. Справка по API для Constructor. --- Создает новый экземпляр `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`. * **Сначала стандартизация локали, затем валидация.** Каждый указанный код локали (`sourceLocale`, `targetLocale` и каждый элемент в `locales`) сначала приводится к канонической форме BCP 47, а затем проверяется. **Сохраняются стандартизованные/нормализованные значения**, а не исходные строки, которые вы передали. При недопустимых кодах конструктор выбрасывает исключение. * **Пользовательское сопоставление применяется к `sourceLocale`/`targetLocale`, но не к `locales`.** `sourceLocale` и `targetLocale` проверяются **с** учётом [`customMapping`](/docs/platform/core/reference/types/custom-mapping), поэтому для них допускается пользовательский алиас. Каждый элемент в `locales` проверяется **без** сопоставления, поэтому алиас из `customMapping` будет отклонён, если он указан в `locales`. * **Приоритет пользовательского сопоставления.** [`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-ключ для production для сервиса перевода. | `string` | Да | переменная окружения `GT_API_KEY` | | [`devApiKey`](#dev-api-key) | API-ключ для разработки, который имеет приоритет в среде разработки. | `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` | Да | — | | [`customMapping`](#custom-mapping) | Пользовательские сопоставления кодов локалей и переопределения свойств. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Да | — | ### `apiKey` [#api-key] **Тип** `string` · **Необязательный** · **По умолчанию** переменная окружения `GT_API_KEY` API-ключ для production-среды сервиса перевода. Если не указан, считывается из переменной окружения `GT_API_KEY`. Обязателен для любых API-операций. ### `devApiKey` [#dev-api-key] **Тип** `string` · **Необязательный** · **По умолчанию** переменная окружения `GT_DEV_API_KEY` API-ключ для разработки. В среде разработки имеет приоритет над `apiKey`. Если не указан, считывается из переменной окружения `GT_DEV_API_KEY`. ### `projectId` [#project-id] **Тип** `string` · **Необязательный** · **По умолчанию** — `GT_PROJECT_ID` env Уникальный идентификатор проекта. Если значение не указано, оно считывается из переменной окружения `GT_PROJECT_ID`. Обязателен для любых операций API. ### `sourceLocale` [#source-locale] **Тип** `string` · **Необязательно** Локаль исходного языка для переводов по умолчанию, например `en`. Приводится к канонической форме и сохраняется в этом нормализованном виде, а затем проверяется **с учётом** любого `customMapping` (поэтому здесь допускается пользовательский алиас). ### `targetLocale` [#target-locale] **Тип** `string` · **Необязательно** Целевая локаль для переводов по умолчанию, например `es`. Приводится к канонической форме и сохраняется в этом нормализованном виде, а затем проверяется **с учётом** любого `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) · **Необязательно** Пользовательские 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-операций требуются `apiKey` (или `devApiKey`) и `projectId`. * Конструктор приводит каждый код локали к его канонической форме (сохраняемое значение — нормализованная форма), затем проверяет его и выбрасывает исключение для недопустимых кодов. * `sourceLocale` и `targetLocale` проверяются с учётом `customMapping`; каждый элемент `locales` проверяется без него. * Пользовательские mappings имеют приоритет над стандартной проверкой и свойствами BCP 47. *Примечание: класс `GT` расширяет `GTRuntime`. В версии 9.0 вспомогательные функции для перевода, форматирования и работы с локалью находятся в `GTRuntime`, а методы файлового workflow (`uploads`, `enqueue`, `downloads` и т. д.) — в `GT`. И конструктор, и [`setConfig`](/docs/platform/core/reference/gt-class/set-config) определены в `GTRuntime`, поэтому благодаря наследованию способ использования не меняется.*