# generaltranslation: General Translation Core SDK: setupProject
URL: https://generaltranslation.com/ru/docs/core/class/methods/translation/setup-project.mdx
---
title: setupProject
description: Справочник по API метода setupProject для инициализации настройки проекта перевода
---
## Обзор
Метод `setupProject` запускает процесс настройки проекта перевода на основе ранее загруженных файлов.
В результате создается асинхронная задача настройки, которая анализирует файлы и подготавливает их к дальнейшим процессам перевода.
```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });
const setupResult = await gt.setupProject(fileRefs, { timeout: 30000 });
console.log(`Задание настройки создано: ${setupResult.jobId}`);
```
Перед вызовом `setupProject` необходимо заранее загрузить файлы с помощью [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files).
## Справочник
### Параметры
| Имя | Тип | Описание |
| ---------- | --------------------- | ----------------------------------------------------------- |
| `files` | `FileReference[]` | Массив ссылок на файлы из ранее загруженных исходных файлов |
| `options?` | `SetupProjectOptions` | Необязательные параметры для задания настройки |
#### Структура FileReference
```typescript
type FileReference = {
fileId: string;
versionId: string;
branchId: string;
fileName: string;
fileFormat?: FileFormat;
dataFormat?: DataFormat;
}
```
#### SetupProjectOptions
| Имя | Тип | Описание |
| ---------- | ---------- | ------------------------------------------------------- |
| `locales?` | `string[]` | Необязательный массив целевых локалей |
| `timeout?` | `number` | Необязательный тайм-аут в миллисекундах для API-запроса |
### Возвращает
`Promise` — содержит идентификатор задачи настройки и её начальный статус.
```typescript
type SetupProjectResult = {
jobId: string;
status: 'queued';
}
```
| Свойство | Тип | Описание |
| -------- | ---------- | ----------------------------------------- |
| `jobId` | `string` | Уникальный идентификатор задачи настройки |
| `status` | `'queued'` | Исходный статус задачи настройки |
***
## Примеры
### Базовое использование
Инициализируйте настройку проекта на основе загруженных файлов:
```typescript title="index.ts" copy
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key'
});
// Ссылки на файлы из предыдущего upload
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);
console.log(`Setup initiated with job ID: ${setupResult.jobId}`);
// Отслеживание статуса задания
const jobStatus = await gt.checkJobStatus([setupResult.jobId]);
console.log(`Job status: ${jobStatus.jobs[0].status}`);
```
***
## Примечания
* Файлы необходимо загрузить с помощью [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) перед вызовом `setupProject`
* Настройка проекта анализирует содержимое и структуру файлов, чтобы оптимизировать процессы перевода
* Задача настройки выполняется асинхронно — отслеживайте прогресс с помощью [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status)
* Настройка обычно требуется перед постановкой заданий на перевод в очередь для новых проектов
* Ссылки на файлы включают `branchId` для корректного управления версиями при поддержке ветвления
## Следующие шаги
* См. [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files), чтобы загрузить файлы перед настройкой
* См. [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status), чтобы отслеживать ход настройки
* См. [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files), чтобы запустить переводы после настройки