# General Translation Platform: Gestion des projets et des fichiers
URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/project/project-management.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Gérez les informations d’un projet General Translation, ses branches, les déplacements de fichiers, la publication sur le CDN et les diffs de modifications depuis une instance GT. Référence API des méthodes de gestion des projets et des fichiers.

Méthodes de bas niveau d’une instance [GT](/docs/platform/core/reference/gt-class/constructor) pour gérer les métadonnées d’un projet, les branches, le cycle de vie des fichiers et l’historique des modifications. Elles sont principalement utilisées par des outils comme le [CLI](/docs/cli/quickstart) ; la plupart des applications utilisent plutôt les [méthodes de traduction](/docs/platform/core/reference/gt-class-methods/translation/translate) de niveau supérieur.

*Remarque : chaque méthode de cette page appelle l’API General Translation et nécessite une API Key sur l’instance [`GT`](/docs/platform/core/reference/gt-class/constructor). Les codes de langue dans les arguments sont normalisés dans leur forme canonique avant l’envoi de la requête.*

| Méthode                                 | Description                                                                                                       | Valeur renvoyée                   |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| [`getProjectInfo`](#get-project-info)   | Récupère le nom du projet authentifié, ses locales et ses paramètres de révision.                                | `Promise<ProjectInfoResult>`      |
| [`queryBranchData`](#query-branch-data) | Recherche des ID de branche par nom.                                                                              | `Promise<BranchDataResult>`       |
| [`createBranch`](#create-branch)        | Crée une branche (ou renvoie une branche existante).                                                              | `Promise<CreateBranchResult>`     |
| [`getOrphanedFiles`](#orphaned-files)   | Trouve les fichiers d’une branche qui ne font plus partie de l’ensemble de fichiers local.                        | `Promise<GetOrphanedFilesResult>` |
| [`processFileMoves`](#process-moves)    | Clone les fichiers source et les traductions sous de nouveaux ID de fichier après un déplacement ou un renommage. | `Promise<ProcessMovesResponse>`   |
| [`publishFiles`](#publish-files)        | Publie ou dépublie des fichiers sur le CDN.                                                                       | `Promise<PublishFilesResult>`     |
| [`submitUserEditDiffs`](#edit-diffs)    | Envoie les modifications de l’utilisateur afin que les générations futures préservent l’intention.                | `Promise<void>`                   |

## `getProjectInfo` [#get-project-info]

Récupère les métadonnées du projet authentifié : son nom, son organisation, ses locales par défaut et actuelles, ainsi que ses paramètres de révision.

```typescript
getProjectInfo(options?: { timeout?: number }): Promise<ProjectInfoResult>
```

* **`options.timeout`** — délai d’expiration de la requête facultatif, en millisecondes.

Renvoie un `ProjectInfoResult` :

| Champ            | Description                                                               | Type                   |
| ---------------- | ------------------------------------------------------------------------- | ---------------------- |
| `id`             | ID du projet.                                                             | `string`               |
| `name`           | Nom du projet.                                                            | `string`               |
| `orgId`          | ID de l’organisation.                                                     | `string`               |
| `defaultLocale`  | La locale (source) par défaut du projet.                                  | `string`               |
| `currentLocales` | Les locales cibles configurées du projet.                                 | `string[]`             |
| `autoApprove`    | Indique si les traductions sont automatiquement approuvées sans révision. | `boolean` (facultatif) |

```typescript
const info = await gt.getProjectInfo();
console.log(info.defaultLocale, info.currentLocales);
```

## `queryBranchData` [#query-branch-data]

Associe les noms de branche à leurs enregistrements de branche et renvoie la branche par défaut du projet.

```typescript
queryBranchData(query: { branchNames: string[] }): Promise<BranchDataResult>
```

* **`query.branchNames`** — les noms des branches à rechercher.

Renvoie un `BranchDataResult` contenant `branches` (`{ id, name }[]`) et `defaultBranch` (`{ id, name }` ou `null`).

```typescript
const { branches, defaultBranch } = await gt.queryBranchData({
  branchNames: ['main'],
});
```

## `createBranch` [#create-branch]

Crée une branche, ou renvoie la branche existante si elle porte déjà ce nom.

```typescript
createBranch(query: {
  branchName: string;
  defaultBranch: boolean;
}): Promise<CreateBranchResult>
```

* **`query.branchName`** — le nom de la branche à créer.
* **`query.defaultBranch`** — indique si cette branche est la branche par défaut du projet.

Renvoie un `CreateBranchResult` contenant la `branch` créée (`{ id, name }`).

```typescript
const { branch } = await gt.createBranch({
  branchName: 'feature/new-copy',
  defaultBranch: false,
});
```

## `getOrphanedFiles` [#orphaned-files]

Renvoie les fichiers présents sur une branche dont les identifiants ne figurent pas dans la liste fournie — des fichiers qui ont probablement été déplacés, renommés ou supprimés localement. Utilisé pour détecter les déplacements de fichiers.

```typescript
getOrphanedFiles(
  branchId: string,
  fileIds: string[],
  options?: { timeout?: number }
): Promise<GetOrphanedFilesResult>
```

* **`branchId`** — la branche à vérifier.
* **`fileIds`** — les ID des fichiers actuels (non orphelins).
* **`options.timeout`** — délai d’expiration facultatif de la requête, en millisecondes.

Renvoie un `GetOrphanedFilesResult` avec `orphanedFiles` (`{ fileId, versionId, fileName }[]`). Les longues listes de `fileIds` sont automatiquement traitées par lots, et un fichier n’est signalé comme orphelin que s’il est absent de tous les lots.

## `processFileMoves` [#process-moves]

Préserve les traductions lorsque des fichiers sont déplacés ou renommés en clonant les fichiers source et leurs traductions sous de nouveaux identifiants de fichier.

```typescript
processFileMoves(
  moves: MoveMapping[],
  options?: { branchId?: string; timeout?: number }
): Promise<ProcessMovesResponse>
```

* **`moves`** — un tableau de correspondances `{ oldFileId, newFileId, newFileName }`.
* **`options.branchId`** — la branche à laquelle les déplacements s’appliquent.
* **`options.timeout`** — délai d’expiration facultatif de la requête, en millisecondes.

Renvoie un `ProcessMovesResponse` avec des `results` pour chaque déplacement et un `summary` (`{ total, succeeded, failed }`). Les déplacements sont regroupés automatiquement par lots.

```typescript
const result = await gt.processFileMoves(
  [{ oldFileId: 'abc123', newFileId: 'def456', newFileName: 'locales/en.json' }],
  { branchId: 'main' }
);
```

## `publishFiles` [#publish-files]

Publie ou dépublie les fichiers source et les traductions sur le CDN.

```typescript
publishFiles(files: PublishFileEntry[]): Promise<PublishFilesResult>
```

Chaque entrée est un `PublishFileEntry` :

| Champ       | Description                                  | Type      | Facultatif |
| ----------- | -------------------------------------------- | --------- | ---------- |
| `fileId`    | Le fichier à publier ou à dépublier.         | `string`  | Non        |
| `versionId` | La version du fichier.                       | `string`  | Non        |
| `publish`   | `true` pour publier, `false` pour dépublier. | `boolean` | Non        |
| `branchId`  | La branche à laquelle le fichier appartient. | `string`  | Oui        |
| `fileName`  | Le nom du fichier.                           | `string`  | Oui        |

Renvoie un `PublishFilesResult` avec des `results` par fichier (`{ fileId, versionId, branchId, success, locale?, error? }`). La présence de `locale` dans un résultat indique une traduction ; son absence indique un fichier source.

## `submitUserEditDiffs` [#edit-diffs]

Soumet les modifications de l’utilisateur aux traductions existantes afin que les générations futures respectent son intention.

```typescript
submitUserEditDiffs(payload: {
  diffs: SubmitUserEditDiff[];
}): Promise<void>
```

Chaque `SubmitUserEditDiff` inclut `fileName`, `locale`, `diff`, `branchId`, `versionId`, `fileId` et `localContent`. L’instance résout les alias de paramètres régionaux personnalisés avant l’envoi, puis l’API résout chaque paramètre régional vers le paramètre régional pris en charge utilisé pour le stockage. Les codes équivalents tels que `ja` et `ja-JP` mettent à jour la même traduction stockée. Les diffs sont automatiquement regroupés par lots. Se résout lorsque l’envoi réussit.

## Sitemap

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