# General Translation Platform: uploadFonts URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/translation/upload-fonts.mdx --- title: uploadFonts 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 ``` *Примечание: для `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` Возвращает идентификаторы сохранённых ресурсов и количество обработанных шрифтов: | Свойство | Описание | Тип | | ------------------- | ------------------------------------------------------------------- | ----------------- | | `assets` | Сохранённые ресурсы шрифтов. | `UploadedAsset[]` | | `assets[].id` | ID сохранённого ресурса организации. | `string` | | `assets[].assetKey` | Вычисленный идентификатор шрифта в формате `-[-i]`. | `string` | | `assets[].fileName` | Имя файла, указанное при загрузке. | `string` | | `count` | Количество обработанных шрифтов. | `number` | **Текущее несоответствие типов в v9.1.0:** в `UploadedAsset` объявлено логическое поле `deduped`, но оно отсутствует в ответе сервиса. Не используйте это поле, чтобы определить, был ли заменён существующий шрифт. ## Пример [#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); ```