# 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 --- title: Gestion des projets et des fichiers 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 paramètres régionaux et ses paramètres de révision. | `Promise` | | [`queryBranchData`](#query-branch-data) | Recherche des Branch ID par nom. | `Promise` | | [`createBranch`](#create-branch) | Crée une branche (ou renvoie une branche existante). | `Promise` | | [`getOrphanedFiles`](#orphaned-files) | Trouve les fichiers d’une branche qui ne font plus partie de l’ensemble de fichiers local. | `Promise` | | [`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` | | [`publishFiles`](#publish-files) | Publie ou dépublie des fichiers sur le CDN. | `Promise` | | [`submitUserEditDiffs`](#edit-diffs) | Envoie les modifications de l’utilisateur afin que les générations futures préservent l’intention. | `Promise` | ## `getProjectInfo` [#get-project-info] Récupère les métadonnées du projet authentifié : son nom, son organisation, ses locales par défaut et actuelle, ainsi que ses paramètres de révision. ```typescript getProjectInfo(options?: { timeout?: number }): Promise ``` * **`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` | Le paramètre régional (source) par défaut du projet. | `string` | | `currentLocales` | Les paramètres régionaux cibles configurés 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 ``` * **`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 ``` * **`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 ``` * **`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 ``` * **`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 ``` 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 ``` Chaque `SubmitUserEditDiff` inclut `fileName`, `locale`, `diff`, `branchId`, `versionId`, `fileId` et `localContent`. Les paramètres régionaux sont normalisées dans leur forme canonique avant l’envoi, et les diffs sont automatiquement regroupés par lots. Se résout lorsque l’envoi réussit.