# General Translation Platform: Gestione di progetto e file
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/project/project-management.mdx
Docs index: https://generaltranslation.com/llms.txt
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&#39;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&#39;API di General Translation e richiede una chiave API nell&#39;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<ProjectInfoResult>`      |
| [`queryBranchData`](#query-branch-data) | Cerca gli ID dei branch in base al nome.                                                             | `Promise<BranchDataResult>`       |
| [`createBranch`](#create-branch)        | Crea un branch (o restituisce quello esistente).                                                     | `Promise<CreateBranchResult>`     |
| [`getOrphanedFiles`](#orphaned-files)   | Trova i file in un branch che non sono più presenti nel set di file locale.                          | `Promise<GetOrphanedFilesResult>` |
| [`processFileMoves`](#process-moves)    | Clona i file sorgente e le traduzioni con nuovi ID file dopo uno spostamento o una ridenominazione.  | `Promise<ProcessMovesResponse>`   |
| [`publishFiles`](#publish-files)        | Pubblica o annulla la pubblicazione dei file dal CDN.                                                | `Promise<PublishFilesResult>`     |
| [`submitUserEditDiffs`](#edit-diffs)    | Invia le modifiche dell&#39;utente così che le generazioni future ne preservino l&#39;intento.       | `Promise<void>`                   |

## `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<ProjectInfoResult>
```

* **`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&#39;organizzazione.                                                | `string`                |
| `defaultLocale`  | L&#39;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<BranchDataResult>
```

* **`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<CreateBranchResult>
```

* **`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&#39;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<GetOrphanedFilesResult>
```

* **`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<ProcessMovesResponse>
```

* **`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<PublishFilesResult>
```

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&#39;utente alle traduzioni esistenti, in modo che le generazioni future ne preservino l&#39;intento.

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

Ogni `SubmitUserEditDiff` include `fileName`, `locale`, `diff`, `branchId`, `versionId`, `fileId` e `localContent`. L&#39;istanza risolve gli alias personalizzati delle impostazioni regionali prima dell&#39;invio, quindi l&#39;API risolve ogni impostazione regionale nell&#39;impostazione regionale supportata usata per l&#39;archiviazione. Codici equivalenti come `ja` e `ja-JP` aggiornano la stessa traduzione archiviata. I diff vengono raggruppati automaticamente. La promise si risolve quando l&#39;invio va a buon fine.

## Sitemap

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