# General Translation Platform: Carica traduzioni URL: https://generaltranslation.com/it/docs/platform/openapi/reference/files/upload-translations.mdx --- title: Carica traduzioni description: Carica file tradotti in un progetto General Translation corrispondenti a file sorgente caricati in precedenza. Riferimento API per il caricamento delle traduzioni. method: POST --- Carica file già tradotti per file sorgente caricati in precedenza. Ogni voce abbina un riferimento a un file sorgente a una o più traduzioni, fino a 100 voci per richiesta. ## Panoramica [#overview] ```http POST https://api2.gtx.dev/v2/project/files/upload-translations ``` **Permesso** `project:files:write` · **Limite di richieste** Medio (120/min) Allega traduzioni esistenti a un progetto, in modo che vengano archiviate insieme alla relativa sorgente. Per caricare prima i file sorgente, usa [Carica file sorgente](/docs/platform/openapi/reference/files/upload-source). Per tradurre invece i file sorgente con General Translation, vedi [Metti in coda le traduzioni](/docs/platform/openapi/reference/translation/queue). ## Come funziona [#how-it-works] * Il `source` di ogni voce identifica un file sorgente che deve già esistere. I file sorgente vengono individuati tramite `branchId`, `versionId` e `fileId`; se `branchId` manca, viene usato il branch predefinito. Se il file sorgente a cui si fa riferimento non viene trovato, la richiesta fallisce con `400`. * L'oggetto `source` viene validato nello stesso modo di un upload, quindi `fileId` usa per impostazione predefinita un hash di `fileName` e `versionId`, se omesso, usa per impostazione predefinita un hash del contenuto. * Il `content` di ogni traduzione è codificato in base64 e decodificato lato server; un valore base64 non valido o un file troppo grande vengono rifiutati. * Le traduzioni ereditano `fileId`, `versionId`, `branchId` e `fileName` dal file sorgente. Imposta `transformFormat` per salvare la traduzione in un formato file di output diverso. * Le traduzioni caricate vengono contrassegnate come completate. Se nel progetto è abilitata l'approvazione automatica, vengono contrassegnate anche come approvate. Le traduzioni `GTJSON` ricevono metadati di revisione per componente derivati dall'oggetto sorgente. * L'elenco delle impostazioni regionali di ogni file sorgente viene aggiornato per includere le impostazioni regionali delle traduzioni caricate. I file vengono pubblicati sul CDN quando nel progetto il CDN è abilitato. * Se viene inviato `sourceLocale` ed è diverso dall'impostazione regionale predefinita corrente del progetto, l'impostazione regionale predefinita del progetto viene aggiornata. ## Richiesta [#request] ### Header | Header | Descrizione | Obbligatorio | | ----------------- | --------------------------------------------------------------------- | ------------ | | `x-gt-api-key` | Chiave API del progetto o dell'Organization. | Sì | | `x-gt-project-id` | ID progetto. Obbligatorio quando si utilizza una chiave Organization. | No | ### Corpo **Tipo di contenuto** `application/json` | Campo | Descrizione | Tipo | Facoltativo | Predefinito | | --------------- | ---------------------------------------------------- | ---------- | ----------- | ----------------------------------------------- | | [`data`](#data) | Array di voci di sorgente/traduzione (1–100). | `object[]` | No | — | | `sourceLocale` | Impostazione regionale sorgente per i file caricati. | `string` | Sì | Impostazione regionale predefinita del progetto | #### `data` [#data] **Tipo** `object[]` · **Obbligatorio** Ogni elemento è `{ "source": { ... }, "translations": [ ... ] }`. L'oggetto `source` identifica il file sorgente caricato in precedenza: | Campo | Descrizione | Tipo | Facoltativo | Predefinito | | ---------------- | ----------------------------------------------------------------------------------- | -------- | ----------- | ------------------ | | `content` | Contenuto sorgente codificato in Base64. Si applica la dimensione massima del file. | `string` | No | — | | `fileName` | Nome del file; non può essere vuoto. | `string` | No | — | | `fileFormat` | Identificatore del formato del file (ad esempio `JSON`, `MDX`). | `string` | No | — | | `locale` | Impostazione regionale del contenuto sorgente; non può essere vuota. | `string` | No | — | | `dataFormat` | Formato dei dati per i contenuti strutturati. | `string` | Sì | — | | `fileId` | Identificatore stabile del file. | `string` | Sì | Hash di `fileName` | | `versionId` | Identificatore della versione di questo contenuto. | `string` | Sì | Hash del contenuto | | `branchId` | Branch a cui è associato il file sorgente. | `string` | Sì | Branch predefinito | | `formatMetadata` | Metadati aggiuntivi specifici del formato. | `object` | Sì | — | Ogni elemento di `translations` corrisponde a un file tradotto. Per ogni voce è richiesta almeno una traduzione: | Campo | Descrizione | Tipo | Facoltativo | Predefinito | | ----------------- | ----------------------------------------------------------------------------------- | -------- | ----------- | ------------------------- | | `content` | Contenuto tradotto codificato in Base64. Si applica la dimensione massima del file. | `string` | No | — | | `fileName` | Nome del file; non può essere vuoto. | `string` | No | — | | `fileFormat` | Identificatore del formato del file. | `string` | No | — | | `locale` | Impostazione regionale di destinazione della traduzione; non può essere vuota. | `string` | No | — | | `dataFormat` | Formato dei dati per i contenuti strutturati. | `string` | Sì | — | | `transformFormat` | Formato del file di output in cui salvare la traduzione. | `string` | Sì | Formato del file sorgente | ## Risposta [#response] **Stato** `201 Created` ```json title="Response" { "uploadedFiles": [ { "branchId": "br_...", "fileId": "file_...", "versionId": "ver_...", "fileName": "en/common.json", "locale": "es", "fileFormat": "JSON", "dataFormat": "JSON" } ], "count": 1, "message": "Successfully uploaded 1 translation file(s)" } ``` ## Errori [#errors] | Stato | Causa | | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `400` | Corpo della richiesta non valido, impostazione regionale/formato non validi, errore di decodifica, file troppo grande oppure file sorgente referenziato non trovato. | | `401` | Chiave API mancante o non valida. | | `403` | La chiave API non dispone di `project:files:write`. | | `429` | Limite di richieste superato. | | `503` | Server occupato; riprova con backoff. | ## Esempio [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/upload-translations \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "sourceLocale": "en", "data": [ { "source": { "content": "eyJoZWxsbyI6ICJIZWxsbyJ9", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "en" }, "translations": [ { "content": "eyJoZWxsbyI6ICJIb2xhIn0=", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "es" } ] } ] }' ```