# General Translation Platform: uploadFonts
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/translation/upload-fonts.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Carica risorse di font permanenti per i workflow di traduzione Lottie. Riferimento API per uploadFonts.

Carica font TrueType o OpenType tramite un progetto, affinché i job di traduzione Lottie della stessa Organization possano utilizzarli durante l&#39;elaborazione del layout.

## Panoramica [#overview]

Chiama `uploadFonts` con un massimo di 10 risorse di font codificate in Base64. Il metodo restituisce gli identificatori delle risorse archiviate. Per caricare più font, suddividili in più chiamate da massimo 10 font ciascuna.

```typescript
const result = await gt.uploadFonts(fonts, {
  timeout: 30000,
});
```

Firma:

```typescript
uploadFonts(
  fonts: AssetUpload[],
  options?: UploadAssetsOptions
): Promise<UploadAssetsResponse>
```

*Nota: `uploadFonts` richiede una chiave API dell&#39;Organizzazione con `org:assets:write` (**Organizzazione assets** nella dashboard), passata come `apiKey` o tramite l&#39;alias deprecato `devApiKey`, oltre a un `projectId` nell&#39;istanza GT. Con le chiavi API di progetto si riceve un errore 403.*

## Come funziona [#how-it-works]

* Il contenuto del font è già codificato in Base64 quando viene passato al metodo.
* Ogni font deve avere un nome del file `.ttf` o `.otf` e, una volta decodificato, non deve superare i 20 MB.
* Il progetto determina quale Organizzazione possiede il font. I font caricati vengono mantenuti tra i job di traduzione di tale Organizzazione.
* Il servizio ricava famiglia di font, peso e stile corsivo dai metadati del font, quindi usa come fallback il nome del file. Caricando nuovamente la stessa identità derivata, la risorsa archiviata viene sostituita.
* L&#39;API accetta al massimo 10 font per richiesta e rifiuta con un errore 400 le richieste che superano questo limite. Il metodo suddivide in più richieste solo gli input con più di 50 font, quindi una chiamata con 11 o più font non va a buon fine. Chiama `uploadFonts` una volta per ogni gruppo di 10 font al massimo.

(Consulta [Carica le risorse del progetto](/docs/platform/openapi/reference/organizations/upsert-assets) per informazioni su convalida, identità derivata e comportamento dei tentativi ripetuti).

## Parametri [#parameters]

| Parametro             | Descrizione                            | Tipo                  | Facoltativo | Predefinito |
| --------------------- | -------------------------------------- | --------------------- | ----------- | ----------- |
| [`fonts`](#fonts)     | Font codificati in Base64 da caricare. | `AssetUpload[]`       | No          | —           |
| [`options`](#options) | Impostazioni della richiesta.          | `UploadAssetsOptions` | Sì          | `{}`        |

### `fonts` [#fonts]

**Tipo** `AssetUpload[]` · **Obbligatorio**

| Campo       | Descrizione                                   | Tipo     | Facoltativo |
| ----------- | --------------------------------------------- | -------- | ----------- |
| `assetType` | Tipo di risorsa. È supportato solo `FONT`.    | `'FONT'` | No          |
| `content`   | Byte del font codificati in Base64.           | `string` | No          |
| `fileName`  | Nome del file con estensione `.ttf` o `.otf`. | `string` | No          |

### `options` [#options]

**Tipo** `UploadAssetsOptions` · **Facoltativo** · **Predefinito** `{}`

| Campo     | Descrizione                               | Tipo     | Facoltativo |
| --------- | ----------------------------------------- | -------- | ----------- |
| `timeout` | Timeout della richiesta, in millisecondi. | `number` | Sì          |

## Restituisce [#returns]

**Tipo** `Promise<UploadAssetsResponse>`

Si risolve con gli identificatori delle risorse archiviate e il numero di font elaborati:

| Proprietà           | Descrizione                                                     | Tipo              |
| ------------------- | --------------------------------------------------------------- | ----------------- |
| `assets`            | Risorse di font archiviate.                                     | `UploadedAsset[]` |
| `assets[].id`       | ID della risorsa Organizzazione archiviata.                       | `string`          |
| `assets[].assetKey` | Identità del font derivata nel formato `<family>-<weight>[-i]`. | `string`          |
| `assets[].fileName` | Nome del file fornito durante il caricamento.                   | `string`          |
| `count`             | Numero di font elaborati.                                       | `number`          |

<Callout type="info">
  **Modificato nella v9.5.0:** `UploadedAsset` non dichiara più il campo `deduped`, che il servizio non ha mai restituito. Se si carica un font con la stessa identità derivata, la risorsa archiviata viene sostituita. (Vedi [Come funziona](#how-it-works)).
</Callout>

## Esempio [#example]

```typescript title="upload-fonts.ts"
import { readFile } from 'node:fs/promises';
import { GT } from 'generaltranslation';

// Una chiave API dell'organizzazione (gtx-org-) con il permesso org:assets:write.
const gt = new GT({
  apiKey: process.env.GT_API_KEY,
  projectId: process.env.GT_PROJECT_ID,
});

const fileNames = ['BrandSans.ttf', 'BrandSans-Bold.ttf'];
const fonts = await Promise.all(
  fileNames.map(async (fileName) => ({
    assetType: 'FONT' as const,
    content: (await readFile(`./public/fonts/${fileName}`)).toString('base64'),
    fileName,
  }))
);

// L'API accetta al massimo 10 font per richiesta.
for (let i = 0; i < fonts.length; i += 10) {
  const result = await gt.uploadFonts(fonts.slice(i, i + 10));
  console.log(result.assets.map((asset) => asset.assetKey));
}
```

## Sitemap

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