# General Translation Platform: uploadFonts URL: https://generaltranslation.com/zh/docs/platform/core/reference/gt-class-methods/translation/upload-fonts.mdx --- title: uploadFonts description: 上传供 Lottie 翻译工作流长期使用的字体资源。uploadFonts 的 API 参考。 --- 通过项目上传 TrueType 或 OpenType 字体,以便同一组织中的 Lottie 翻译任务在布局处理期间使用这些字体。 ## 概述 [#overview] 使用 Base64 编码的字体资源调用 `uploadFonts`。该方法会将大型输入拆分为每批 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` 文件名,且解码后大小不得超过 20MB。 * 项目决定字体归属的组织。上传的字体会在该组织的所有翻译任务中保留。 * 服务会从字体元数据中识别字体系列、字重和斜体样式;如果无法识别,则回退到文件名。再次上传具有相同派生字体标识的字体,会替换已存储的资源。 * 输入超过 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); ```