# General Translation Platform: setupProject
URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/translation/setup-project.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Prépare les fichiers téléversés pour les workflows de traduction du projet. Référence API pour setupProject.

Lance le processus de setup d’un projet de traduction à partir de fichiers précédemment téléversés dans General Translation. Cette opération crée une tâche de configuration initiale asynchrone qui analyse les fichiers et les prépare pour les workflows de traduction.

## Vue d’ensemble [#overview]

Appelez `setupProject` avec les références de fichiers provenant de [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files), éventuellement accompagnées d’options de setup. La méthode met soit une tâche de setup initial en file d’attente (en renvoyant un `setupJobId`), soit indique que le projet est déjà passé par le setup.

```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');
}
```

Signature :

```typescript
setupProject(
  files: SetupProjectFileReference[],
  options?: SetupProjectOptions
): Promise<SetupProjectResult>
```

*Remarque : `setupProject` nécessite une clé API (y compris l’alias déprécié `devApiKey`), ainsi qu’un `projectId` sur l’instance GT. Vous devez d’abord téléverser les fichiers avec [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).*

## Fonctionnement [#how-it-works]

* **Analyse du fichier.** Le setup analyse le contenu et la structure du fichier afin d’optimiser les workflows de traduction.
* **Tâche de configuration initiale asynchrone.** La tâche de configuration initiale s’exécute de manière asynchrone — surveillez sa progression avec [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status).
* **Si nécessaire.** Le setup est généralement requis avant de mettre en file d’attente des tâches de traduction pour de nouveaux projets.
* **Gestion des versions.** Les références de fichiers incluent `branchId` pour la gestion des versions avec prise en charge des branches.

## Paramètres [#parameters]

| Paramètre             | Description                                                                     | Type                          | Facultatif | Par défaut |
| --------------------- | ------------------------------------------------------------------------------- | ----------------------------- | ---------- | ---------- |
| [`files`](#files)     | Références à des fichiers provenant de fichiers source précédemment téléversés. | `SetupProjectFileReference[]` | Non        | —          |
| [`options`](#options) | Paramètres de la tâche de configuration initiale.                               | `SetupProjectOptions`         | Oui        | —          |

### `files` [#files]

**Type** `SetupProjectFileReference[]` · **Obligatoire**

Importez `SetupProjectFileReference` depuis `generaltranslation/types`. Transmettez les identifiants renvoyés par [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) :

```typescript
type SetupProjectFileReference = {
  fileId: string;
  versionId: string;
  branchId: string;
};
```

Les trois identifiants sont obligatoires. Les noms de fichiers et les formats ne sont pas envoyés.

### `options` [#options]

**Type** `SetupProjectOptions` · **Facultatif**

| Champ       | Description                                                                                                        | Type       | Facultatif |
| ----------- | ------------------------------------------------------------------------------------------------------------------ | ---------- | ---------- |
| `force`     | Force la génération du contexte du projet ; il ne s’agit pas d’une option d’invalidation du cache des traductions. | `boolean`  | Oui        |
| `locales`   | Paramètres régionaux cibles du projet.                                                                             | `string[]` | Oui        |
| `timeoutMs` | Délai d’expiration en millisecondes pour la requête API.                                                           | `number`   | Oui        |

## Retourne [#returns]

**Type** `Promise<SetupProjectResult>`

Renvoie un `SetupProjectResult`, une union de deux variantes :

```typescript
type SetupProjectResult =
  | { setupJobId: string; status: 'queued' }
  | { status: 'completed' };
```

* Lorsqu’une tâche de configuration initiale est créée, il renvoie la variante `queued` avec un `setupJobId`.
* Lorsque le projet est déjà configuré, il renvoie la variante `completed` sans job identifier.

| Propriété    | Description                                                                                       | Type                      |
| ------------ | ------------------------------------------------------------------------------------------------- | ------------------------- |
| `setupJobId` | Identifiant unique de la tâche de configuration initiale en attente. Présent uniquement sur la variante `queued`.          | `string`                  |
| `status`     | `'queued'` lorsqu’une tâche de configuration initiale a été créée, ou `'completed'` lorsque le projet est déjà configuré. | `'queued' \| 'completed'` |

## Exemples [#examples]

```typescript title="index.ts"
import { GT } from 'generaltranslation';

const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// Références de fichiers issues d'un upload précédent
const fileRefs = [
  {
    fileId: 'file-123',
    versionId: 'version-456',
    branchId: 'branch-789',
  },
  {
    fileId: 'file-789',
    versionId: 'version-012',
    branchId: 'branch-789',
  },
];

const setupResult = await gt.setupProject(fileRefs);

if (setupResult.status === 'queued') {
  console.log(`Setup initiated with job ID: ${setupResult.setupJobId}`);

  // Attendre la fin de la configuration, dans un délai limité.
  const result = await gt.awaitJobs([setupResult.setupJobId], { timeoutSeconds: 300 });
  if (!result.complete || result.jobs.some((job) => job.status !== 'completed')) {
    throw new Error('Project setup did not complete successfully');
  }
} else {
  console.log('Project is already set up — no setup job needed');
}
```

## Notes [#notes]

* Les fichiers doivent être téléversés avec [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) avant d’appeler `setupProject`.
* L’initialisation du projet analyse le contenu et la structure des fichiers afin d’optimiser les workflows de traduction.
* La tâche de configuration initiale s’exécute de manière asynchrone — suivez sa progression avec [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status).
* Cette initialisation est généralement requise avant de placer des tâches de traduction en file d’attente pour de nouveaux projets.
* Les références de fichiers incluent `branchId` pour la gestion des versions avec prise en charge des branches.

## Sitemap

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