# General Translation Platform: setupProject URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/translation/setup-project.mdx --- title: setupProject description: Подготовка загруженных файлов для рабочих процессов перевода проекта. Справочник API для setupProject. --- Запускает процесс настройки проекта перевода с использованием файлов, ранее загруженных в General Translation. Создаёт асинхронную задачу настройки, которая анализирует файлы и подготавливает их для рабочих процессов перевода. ## Обзор [#overview] Вызовите `setupProject`, передав ссылки на файлы из [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) и при необходимости параметры настройки. В результате либо в очередь ставится задача настройки (возвращается `setupJobId`), либо сообщается, что проект уже настроен. ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const setupResult = await gt.setupProject(fileRefs, { timeoutMs: 30000 }); if (setupResult.status === 'queued') { console.log(`Setup job created: ${setupResult.setupJobId}`); } else { console.log('Project is already set up'); } ``` Сигнатура: ```typescript setupProject( files: FileReference[], options?: SetupProjectOptions ): Promise ``` *Примечание: для `setupProject` в экземпляре GT требуются `apiKey` (или `devApiKey`) и `projectId`. Сначала необходимо загрузить исходные файлы с помощью [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).* ## Как это работает [#how-it-works] * **Анализ файла.** Этап настройки анализирует содержимое и структуру файла, чтобы оптимизировать рабочий процесс перевода. * **Асинхронная задача.** Задача настройки выполняется асинхронно — отслеживайте её статус с помощью [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status). * **Когда это требуется.** Настройка обычно требуется перед постановкой в очередь задач перевода для новых проектов. * **Управление версиями.** Ссылки на файлы включают `branchId` для управления версиями с поддержкой веток. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------------------- | ------------------------------------------- | --------------------- | -------------- | ------------ | | [`files`](#files) | Ссылки на ранее загруженные исходные файлы. | `FileReference[]` | Нет | — | | [`options`](#options) | Настройки для задачи настройки. | `SetupProjectOptions` | Да | — | ### `files` [#files] **Тип** `FileReference[]` · **Обязательно** Ссылки на файлы, которые возвращает [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files): ```typescript type FileReference = { fileId: string; versionId: string; branchId: string; fileName: string; fileFormat: FileFormat; transformFormat?: FileFormat; // запрошенный формат вывода для сгенерированных переводов dataFormat?: DataFormat; }; ``` В `FileReference` обязательны и `fileName`, и `fileFormat`; `transformFormat` и `dataFormat` — необязательны. ### `options` [#options] **Тип** `SetupProjectOptions` · **Необязательно** | Поле | Описание | Тип | Необязательно | | ----------- | --------------------------------------------------------------------------------------- | ---------- | ------------- | | `force` | Принудительно повторно выполнить настройку, сбросив существующие кэшированные переводы. | `boolean` | Да | | `locales` | Целевые локали проекта. | `string[]` | Да | | `timeoutMs` | Тайм-аут API-запроса в миллисекундах. | `number` | Да | ## Возвращает [#returns] **Тип** `Promise` Возвращает `SetupProjectResult` — объединение двух вариантов: ```typescript type SetupProjectResult = | { setupJobId: string; status: 'queued' } | { status: 'completed' }; ``` * При создании задачи настройки возвращается вариант `queued` с `setupJobId`. * Если проект уже настроен, возвращается вариант `completed` без идентификатора задачи. | Свойство | Описание | Тип | | ------------ | ---------------------------------------------------------------------------------------------------------- | ------------------------- | | `setupJobId` | Уникальный идентификатор поставленной в очередь задачи настройки. Присутствует только у варианта `queued`. | `string` | | `status` | `'queued'`, если была создана задача настройки, или `'completed'`, если проект уже настроен. | `'queued' \| 'completed'` | ## Примеры [#examples] ```typescript title="index.ts" import { GT } from 'generaltranslation'; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // Ссылки на файлы из предыдущей загрузки const fileRefs = [ { fileId: 'file-123', versionId: 'version-456', branchId: 'branch-789', fileName: 'app.json', fileFormat: 'JSON', }, { fileId: 'file-789', versionId: 'version-012', branchId: 'branch-789', fileName: 'content.md', fileFormat: 'MD', }, ]; const setupResult = await gt.setupProject(fileRefs); if (setupResult.status === 'queued') { console.log(`Setup initiated with job ID: ${setupResult.setupJobId}`); // Отслеживание статуса задачи (checkJobStatus возвращает плоский массив) const jobStatus = await gt.checkJobStatus([setupResult.setupJobId]); console.log(`Job status: ${jobStatus[0].status}`); } else { console.log('Project is already set up — no setup job needed'); } ``` ## Заметки [#notes] * Перед вызовом `setupProject` файлы нужно загрузить с помощью [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files). * При настройке проекта анализируются содержимое и структура файлов, чтобы оптимизировать рабочий процесс перевода. * Задача настройки выполняется асинхронно — отслеживайте её status с помощью [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status). * Настройка обычно требуется перед постановкой в очередь задач перевода для новых проектов. * Ссылки на файлы включают `branchId` для версионирования с поддержкой веток.