# General Translation Platform: uploadFonts
URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/translation/upload-fonts.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Загрузка постоянных шрифтовых ресурсов для рабочих процессов перевода Lottie. Справочник API для uploadFonts.

Загружает шрифты TrueType или OpenType через проект, чтобы задачи перевода Lottie в той же организации могли использовать их при обработке макета.

## Обзор [#overview]

Вызовите `uploadFonts`, передав ресурсы шрифтов в кодировке Base64. Метод разбивает большие входные данные на пакеты по 50 элементов и возвращает идентификаторы сохранённых ресурсов.

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

Сигнатура:

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

*Примечание: для `uploadFonts` в экземпляре GT должны быть указаны `apiKey` (или `devApiKey`) и `projectId`.*

## Принцип работы [#how-it-works]

* Содержимое шрифта передаётся методу уже в кодировке Base64.
* У каждого шрифта должно быть имя файла с расширением `.ttf` или `.otf`, а размер после декодирования не должен превышать 20 МБ.
* Проект определяет организацию, которой принадлежит шрифт. Загруженные шрифты сохраняются и используются во всех задачах перевода этой организации.
* Сервис деривирует семейство шрифта, начертание и курсивный стиль из метаданных шрифта, а при их отсутствии использует имя файла. Повторная загрузка шрифта с тем же деривированным идентификатором заменяет сохранённый ресурс.
* Если во входных данных указано более 50 шрифтов, они загружаются несколькими запросами.

(Сведения о проверке, идентификаторе и повторных попытках см. в разделе [Загрузка ресурсов проекта](/docs/platform/openapi/reference/project/upload-assets)).

## Параметры [#parameters]

| Параметр              | Описание                                | Тип                   | Необязательный | По умолчанию |
| --------------------- | --------------------------------------- | --------------------- | -------------- | ------------ |
| [`fonts`](#fonts)     | Шрифты в кодировке Base64 для загрузки. | `AssetUpload[]`       | Нет            | —            |
| [`options`](#options) | Настройки запроса.                      | `UploadAssetsOptions` | Да             | `{}`         |

### `fonts` [#fonts]

**Тип** `AssetUpload[]` · **Обязательно**

| Поле        | Описание                                   | Тип      | Необязательно |
| ----------- | ------------------------------------------ | -------- | ------------- |
| `assetType` | Тип ресурса. Поддерживается только `FONT`. | `'FONT'` | Нет           |
| `content`   | Байты шрифта в кодировке Base64.           | `string` | Нет           |
| `fileName`  | Имя файла с расширением `.ttf` или `.otf`. | `string` | Нет           |

### `options` [#options]

**Тип** `UploadAssetsOptions` · **Необязательный** · **По умолчанию** `{}`

| Поле      | Описание                          | Тип      | Необязательное |
| --------- | --------------------------------- | -------- | -------------- |
| `timeout` | Тайм-аут запроса в миллисекундах. | `number` | Да             |

## Возвращает [#returns]

**Тип** `Promise<UploadAssetsResponse>`

Возвращает идентификаторы сохранённых ресурсов и количество обработанных шрифтов:

| Свойство            | Описание                                                            | Тип               |
| ------------------- | ------------------------------------------------------------------- | ----------------- |
| `assets`            | Сохранённые ресурсы шрифтов.                                        | `UploadedAsset[]` |
| `assets[].id`       | ID сохранённого ресурса организации.                                | `string`          |
| `assets[].assetKey` | Вычисленный идентификатор шрифта в формате `<family>-<weight>[-i]`. | `string`          |
| `assets[].fileName` | Имя файла, указанное при загрузке.                                  | `string`          |
| `count`             | Количество обработанных шрифтов.                                    | `number`          |

<Callout type="warn">
  **Текущее несоответствие типов в v9.1.0:** в `UploadedAsset` объявлено логическое поле `deduped`, но оно отсутствует в ответе сервиса. Не используйте это поле, чтобы определить, был ли заменён существующий шрифт.
</Callout>

## Пример [#example]

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

const gt = new GT({
  apiKey: process.env.GT_API_KEY,
  projectId: process.env.GT_PROJECT_ID,
});

const content = (await readFile('./public/fonts/BrandSans.ttf')).toString(
  'base64'
);

const result = await gt.uploadFonts([
  {
    assetType: 'FONT',
    content,
    fileName: 'BrandSans.ttf',
  },
]);

console.log(result.assets[0].assetKey);
```

## Sitemap

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