# General Translation Platform: setupProject URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/translation/setup-project.mdx --- title: setupProject description: Prepara i file caricati per i workflow di traduzione del progetto. Riferimento API di setupProject. --- Inizializza il processo di setup per un progetto di traduzione utilizzando i file caricati in precedenza con General Translation. Crea un job di setup asincrono che analizza i file e li prepara per i workflow di traduzione. ## Panoramica [#overview] Chiama `setupProject` con i riferimenti ai file restituiti da [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files), facoltativamente con opzioni di setup. Il metodo mette in coda un job di setup (restituendo un `setupJobId`) oppure segnala che il progetto è già configurato. ```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'); } ``` Firma: ```typescript setupProject( files: FileReference[], options?: SetupProjectOptions ): Promise ``` *Nota: `setupProject` richiede un'`apiKey` (o `devApiKey`) e `projectId` nell'istanza GT. Devi prima caricare i file con [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files).* ## Come funziona [#how-it-works] * **Analisi del file.** Il setup analizza il contenuto e la struttura del file per ottimizzare i workflow di traduzione. * **Job asincrono.** Il job di setup viene eseguito in modo asincrono: monitora l'avanzamento con [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status). * **Quando richiesto.** Il setup è generalmente richiesto prima di mettere in coda i job di traduzione per i nuovi progetti. * **Controllo delle versioni.** I riferimenti ai file includono `branchId` per il controllo delle versioni con supporto per i branch. ## Parametri [#parameters] | Parametro | Descrizione | Tipo | Facoltativo | Predefinito | | --------------------- | --------------------------------------------------- | --------------------- | ----------- | ----------- | | [`files`](#files) | Riferimenti a file sorgente caricati in precedenza. | `FileReference[]` | No | — | | [`options`](#options) | Impostazioni per il job di setup. | `SetupProjectOptions` | Sì | — | ### `files` [#files] **Tipo** `FileReference[]` · **Obbligatorio** I riferimenti ai file restituiti da [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files): ```typescript type FileReference = { fileId: string; versionId: string; branchId: string; fileName: string; fileFormat: FileFormat; transformFormat?: FileFormat; // formato di output richiesto per le traduzioni generate dataFormat?: DataFormat; }; ``` Sia `fileName` sia `fileFormat` sono obbligatori per `FileReference`; `transformFormat` e `dataFormat` sono facoltativi. ### `options` [#options] **Type** `SetupProjectOptions` · **Facoltativo** | Campo | Descrizione | Type | Facoltativo | | ----------- | ------------------------------------------------------------------------- | ---------- | ----------- | | `force` | Forza un nuovo setup invalidando le traduzioni memorizzate nella cache. | `boolean` | Sì | | `locales` | locales di destinazione per il progetto. | `string[]` | Sì | | `timeoutMs` | Timeout in millisecondi per la richiesta all'API. | `number` | Sì | ## Restituisce [#returns] **Tipo** `Promise` Si risolve con un `SetupProjectResult`, un'unione di due varianti: ```typescript type SetupProjectResult = | { setupJobId: string; status: 'queued' } | { status: 'completed' }; ``` * Quando viene creato un job di setup, viene restituita la variante `queued` con un `setupJobId`. * Quando il progetto è già configurato, viene restituita la variante `completed` senza alcun ID del job. | Proprietà | Descrizione | Tipo | | ------------ | ---------------------------------------------------------------------------------------------------------- | ------------------------- | | `setupJobId` | Identificatore univoco del job di setup in coda. Presente solo nella variante `queued`. | `string` | | `status` | `'queued'` quando viene creato un job di setup, oppure `'completed'` quando il progetto è già configurato. | `'queued' \| 'completed'` | ## Esempi [#examples] ```typescript title="index.ts" import { GT } from 'generaltranslation'; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // Riferimenti a file da un upload precedente const fileRefs = [ { fileId: 'file-123', versionId: 'version-456', branchId: 'branch-789', fileName: 'app.json', fileFormat: 'JSON', }, { fileId: 'file-789', versionId: 'version-012', branchId: 'branch-789', fileName: 'content.md', fileFormat: 'MD', }, ]; const setupResult = await gt.setupProject(fileRefs); if (setupResult.status === 'queued') { console.log(`Setup initiated with job ID: ${setupResult.setupJobId}`); // Monitora lo stato del job (checkJobStatus restituisce un array flat) const jobStatus = await gt.checkJobStatus([setupResult.setupJobId]); console.log(`Job status: ${jobStatus[0].status}`); } else { console.log('Project is already set up — no setup job needed'); } ``` ## Note [#notes] * I file devono essere caricati con [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) prima di chiamare `setupProject`. * Il setup del progetto analizza il contenuto e la struttura dei file per ottimizzare i workflow di traduzione. * Il job di setup viene eseguito in modo asincrono: monitora l'avanzamento con [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status). * Il setup è in genere necessario prima di mettere in coda i job di traduzione per i nuovi progetti. * I riferimenti ai file includono `branchId` per il controllo delle versioni con supporto dei branch.