---
title: "支持的字体"
description: "返回图片翻译接口可用的字体与字重列表,以及 OCR 步骤接受的源语言代码。"
---

## 接口

```
GET /v1/image-translate/supported-fonts
```

返回 [`/translate`](./translate) 接口允许的实时取值清单:

- 各目标语言可用的字体
- 各目标语言的默认字体
- 渲染器接受的所有 `font_weight` 值
- OCR 步骤接受的所有 `source_language` 代码

需要 API Key 鉴权。本接口免费,不计费。

建议在启动时调用一次并缓存结果 — 字体与字重列表更新不频繁,但会随时间逐步增加。

## 请求

无参数。仅需在请求头携带 API Key。

## 响应

```json
{
  "success": true,
  "requestId": "550e8400e29b41d4a716446655440000",
  "data": {
    "fontsByLanguage": {
      "ko":    ["Pretendard", "BMHANNAPro", "NotoSansKR"],
      "zh-CN": ["NotoSansSC"],
      "zh-TW": ["NotoSansSC"],
      "ja":    ["NotoSansKR", "NotoSansSC", "Pretendard"],
      "en":    ["Pretendard", "NotoSansKR", "NotoSansSC"]
    },
    "defaultByLanguage": {
      "ko":    "Pretendard",
      "zh-CN": "NotoSansSC",
      "ja":    "NotoSansKR",
      "en":    "Pretendard"
    },
    "allFonts": ["Pretendard", "BMHANNAPro", "NotoSansKR", "NotoSansSC"],
    "allWeights": [
      "auto", "Thin", "Light", "Regular", "Medium",
      "SemiBold", "Bold", "ExtraBold", "Black"
    ],
    "supportedSourceLanguages": [
      "auto", "ch", "zh", "zh-CN", "zh-TW", "chinese_cht",
      "ja", "japan", "en"
    ]
  }
}
```

| 字段 | 类型 | 说明 |
|------|------|-----|
| `fontsByLanguage` | object | 每种目标语言下,字符覆盖足够的字体清单。第一项为默认字体。 |
| `defaultByLanguage` | object | 便利映射:目标语言 → 默认字体(取每种语言列表的首项)。 |
| `allFonts` | string[] | `/translate` 的 `font` 参数允许的全部值。 |
| `allWeights` | string[] | `/translate` 的 `font_weight` 参数允许的全部值。 |
| `supportedSourceLanguages` | string[] | `/translate` 与 `/ocr` 的 `source_language` 允许的全部值。`auto` 会自动检测语言。 |

未在 `fontsByLanguage` 中列出的目标语言可能渲染效果较差 — 优先选择响应中实际出现的目标语言。

## 示例

### cURL

```bash
curl -H "x-api-key: $APINOA_API_KEY" \
  https://gateway.apinoa.com/v1/image-translate/supported-fonts
```

### Python — 为用户的目标语言挑选默认字体

```python
import requests

cfg = requests.get(
    "https://gateway.apinoa.com/v1/image-translate/supported-fonts",
    headers={"x-api-key": "YOUR_API_KEY"},
    timeout=10,
).json()["data"]

target = "ko"
font = cfg["defaultByLanguage"].get(target, cfg["allFonts"][0])
print(f"对 target_language={target!r} 使用 font={font!r}")
```

### Node.js / TypeScript — 在调用 `/translate` 前校验输入

```typescript
const cfg = await fetch(
  "https://gateway.apinoa.com/v1/image-translate/supported-fonts",
  { headers: { "x-api-key": process.env.APINOA_API_KEY! } },
).then((r) => r.json());

const { allFonts, allWeights, supportedSourceLanguages } = cfg.data;

function pickFont(target: string, requested?: string): string {
  if (requested && allFonts.includes(requested)) return requested;
  return cfg.data.defaultByLanguage[target] ?? allFonts[0];
}
```

## 错误

| 代码 | HTTP | 情形 |
|-----|------|-----|
| `UNAUTHORIZED` | 401 | API Key 缺失/无效 |

## 定价

免费,不计费。

<ApiTester endpoint="/v1/image-translate/supported-fonts" method="GET" description="使用 API Key 测试此接口" />
