# General Translation Platform: Gestione di progetto e file URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/project/project-management.mdx --- title: Gestione di progetto e file description: Gestisci le informazioni di un progetto General Translation, i branch, gli spostamenti dei file, la pubblicazione sul CDN e i diff delle modifiche da un'istanza GT. Riferimento API per i metodi di gestione di progetto e file. --- Metodi di livello inferiore su un'istanza di [GT](/docs/platform/core/reference/gt-class/constructor) per gestire i metadati di un progetto, i branch, il ciclo di vita dei file e la cronologia delle modifiche. Sono usati principalmente da strumenti come la [CLI](/docs/cli/quickstart); la maggior parte delle applicazioni usa invece i [metodi di traduzione](/docs/platform/core/reference/gt-class-methods/translation/translate) di livello superiore. *Nota: ogni metodo in questa pagina chiama l'API di General Translation e richiede una chiave API nell'istanza [`GT`](/docs/platform/core/reference/gt-class/constructor). I codici locale negli argomenti vengono normalizzati nella loro forma canonica prima della richiesta.* | Metodo | Descrizione | Restituisce | | --------------------------------------- | ---------------------------------------------------------------------------------------------------- | --------------------------------- | | [`getProjectInfo`](#get-project-info) | Recupera il nome del progetto autenticato, le impostazioni regionali e le impostazioni di revisione. | `Promise` | | [`queryBranchData`](#query-branch-data) | Cerca gli ID dei branch in base al nome. | `Promise` | | [`createBranch`](#create-branch) | Crea un branch (o restituisce quello esistente). | `Promise` | | [`getOrphanedFiles`](#orphaned-files) | Trova i file in un branch che non sono più presenti nel set di file locale. | `Promise` | | [`processFileMoves`](#process-moves) | Clona i file sorgente e le traduzioni con nuovi ID file dopo uno spostamento o una ridenominazione. | `Promise` | | [`publishFiles`](#publish-files) | Pubblica o ritira i file dal CDN. | `Promise` | | [`submitUserEditDiffs`](#edit-diffs) | Invia le modifiche dell'utente così che le generazioni future ne preservino l'intento. | `Promise` | ## `getProjectInfo` [#get-project-info] Recupera i metadati del progetto autenticato: nome, organizzazione, impostazioni regionali predefinite e correnti e impostazioni di revisione. ```typescript getProjectInfo(options?: { timeout?: number }): Promise ``` * **`options.timeout`** — timeout facoltativo della richiesta, in millisecondi. Restituisce un `ProjectInfoResult`: | Field | Description | Type | | ---------------- | -------------------------------------------------------------------------- | ----------------------- | | `id` | ID progetto. | `string` | | `name` | Nome del progetto. | `string` | | `orgId` | ID dell'organizzazione. | `string` | | `defaultLocale` | L'impostazione regionale predefinita del progetto (sorgente). | `string` | | `currentLocales` | Le impostazioni regionali di destinazione configurate per il progetto. | `string[]` | | `autoApprove` | Indica se le traduzioni vengono approvate automaticamente senza revisione. | `boolean` (facoltativo) | ```typescript const info = await gt.getProjectInfo(); console.log(info.defaultLocale, info.currentLocales); ``` ## `queryBranchData` [#query-branch-data] Converte i nomi dei branch nei rispettivi record e restituisce il branch predefinito del progetto. ```typescript queryBranchData(query: { branchNames: string[] }): Promise ``` * **`query.branchNames`** — i nomi dei branch da cercare. Restituisce un `BranchDataResult` con `branches` (`{ id, name }[]`) e `defaultBranch` (`{ id, name }` oppure `null`). ```typescript const { branches, defaultBranch } = await gt.queryBranchData({ branchNames: ['main'], }); ``` ## `createBranch` [#create-branch] Crea un branch oppure restituisce quello esistente, se ne esiste già uno con quel nome. ```typescript createBranch(query: { branchName: string; defaultBranch: boolean; }): Promise ``` * **`query.branchName`** — il nome del branch da creare. * **`query.defaultBranch`** — se questo branch è quello predefinito del progetto. Restituisce un `CreateBranchResult` con il `branch` creato (`{ id, name }`). ```typescript const { branch } = await gt.createBranch({ branchName: 'feature/new-copy', defaultBranch: false, }); ``` ## `getOrphanedFiles` [#orphaned-files] Restituisce i file presenti in un branch i cui ID file non compaiono nell'elenco fornito, ovvero file che sono stati probabilmente spostati, rinominati o eliminati localmente. Utilizzato per il rilevamento degli spostamenti. ```typescript getOrphanedFiles( branchId: string, fileIds: string[], options?: { timeout?: number } ): Promise ``` * **`branchId`** — il branch da controllare. * **`fileIds`** — gli ID file correnti (non orfani). * **`options.timeout`** — request timeout facoltativo in millisecondi. Restituisce un `GetOrphanedFilesResult` con `orphanedFiles` (`{ fileId, versionId, fileName }[]`). Gli elenchi di `fileIds` di grandi dimensioni vengono suddivisi automaticamente in batch e un file viene segnalato come orfano solo se è assente in tutti i batch. ## `processFileMoves` [#process-moves] Preserva le traduzioni quando i file vengono spostati o rinominati clonando i file sorgente e le relative traduzioni con nuovi ID file. ```typescript processFileMoves( moves: MoveMapping[], options?: { branchId?: string; timeout?: number } ): Promise ``` * **`moves`** — un array di mapping `{ oldFileId, newFileId, newFileName }`. * **`options.branchId`** — il branch a cui si applicano gli spostamenti. * **`options.timeout`** — timeout facoltativo della richiesta, in millisecondi. Restituisce un `ProcessMovesResponse` con `results` per ogni spostamento e un `summary` (`{ total, succeeded, failed }`). Gli spostamenti vengono raggruppati automaticamente in batch. ```typescript const result = await gt.processFileMoves( [{ oldFileId: 'abc123', newFileId: 'def456', newFileName: 'locales/en.json' }], { branchId: 'main' } ); ``` ## `publishFiles` [#publish-files] Pubblica o rimuove dalla pubblicazione i file sorgente e le traduzioni sulla CDN. ```typescript publishFiles(files: PublishFileEntry[]): Promise ``` Ogni voce è un `PublishFileEntry`: | Campo | Descrizione | Tipo | Facoltativo | | ----------- | ----------------------------------------------------------------- | --------- | ----------- | | `fileId` | Il file da pubblicare o da rimuovere dalla pubblicazione. | `string` | No | | `versionId` | La versione del file. | `string` | No | | `publish` | `true` per pubblicare, `false` per rimuovere dalla pubblicazione. | `boolean` | No | | `branchId` | Il branch a cui appartiene il file. | `string` | Sì | | `fileName` | Il nome del file. | `string` | Sì | Restituisce un `PublishFilesResult` con `results` per ciascun file (`{ fileId, versionId, branchId, success, locale?, error? }`). La presenza di `locale` in un risultato indica una traduzione; la sua assenza indica un file sorgente. ## `submitUserEditDiffs` [#edit-diffs] Invia le modifiche apportate dall'utente alle traduzioni esistenti, in modo che le generazioni future ne preservino l'intento. ```typescript submitUserEditDiffs(payload: { diffs: SubmitUserEditDiff[]; }): Promise ``` Ogni `SubmitUserEditDiff` include `fileName`, `locale`, `diff`, `branchId`, `versionId`, `fileId` e `localContent`. Le impostazioni regionali vengono normalizzate in forma canonica prima dell'invio e i diff vengono raggruppati automaticamente. La promise si risolve quando l'invio va a buon fine.