맞춤 폰트
TTF / OTF / WOFF2 폰트를 업로드하고 /v1/image-translate/translate 에서 font="user/<id>" 로 사용하세요.
개요
대시보드에서 TTF, OTF 또는 WOFF2 폰트를 업로드한 뒤, /v1/image-translate/translate 호출에 font=user/<id> 를 전달하면 번역된 텍스트를 번들 기본 폰트 대신 그 폰트로 렌더링합니다.
활용 예:
- 자사몰의 브랜드 타이포그래피로 번역된 상품 페이지 통일
- 한국 웹툰을 독자가 익숙한 폰트로 렌더링
- 번들 폰트에 없는 한글·한자 혼용 폰트 사용
업로드
로그인 → 사이드바의 맞춤 폰트 → TTF / OTF / WOFF2 파일을 선택 → 표시 이름 지정 → 업로드. 대시보드가 각 폰트의 user/<id> 참조와 렌더링 가능한 스크립트를 보여줍니다.
사용자 폰트로 렌더링
/v1/image-translate/translate 의 쿼리 파라미터로 font=user/<id> 를 전달합니다. body 는 동일하게 원시 이미지 바이트입니다:
curl -X POST "https://gateway.apinoa.com/v1/image-translate/translate?source_language=zh-CN&target_language=ko&font=user/fxa9b21c0c8f&font_weight=Bold" \
-H "x-api-key: $APINOA_API_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary @product.jpg \
-o translated.jpg글리프 커버리지 게이트
타깃 언어가 ko 인데 한글 글리프가 없는 폰트(예: Latin-only)를 지정하면 렌더링 작업이 시작되기 전에 거절됩니다:
{
"success": false,
"error": {
"code": "FONT_GLYPH_COVERAGE",
"message": "font does not contain glyphs for hangul (required for target_lang=ko). Upload a font that supports this script."
}
}| 타깃 언어 | 필요한 스크립트 |
|---|---|
| ko | hangul |
| ja | kana |
| zh / zh-CN / zh-TW | han |
| ru | cyrillic |
| en, fr, de, es, pt, it, vi, id, ms | latin |
| he | hebrew |
| ar | arabic |
목록에 없는 타깃 언어는 게이트가 적용되지 않습니다.
내 폰트 목록
/v1/image-translate/supported-fonts 가 번들 폰트와 사용자 폰트를 함께 반환합니다. 각 폰트에는 렌더링 가능한 스크립트를 나타내는 glyphCoverage 맵이 들어 있으니, 타깃 언어별로 어떤 폰트를 제공할지 정하는 데 활용하세요:
curl https://gateway.apinoa.com/v1/image-translate/supported-fonts \
-H "x-api-key: $APINOA_API_KEY"응답의 userFonts 배열에서 각 항목의 ref 가 font 파라미터에 그대로 넣을 값입니다.
제한
- 파일 크기: 10 MiB 이하
- 형식: TTF, OTF, WOFF2 (TTC/OTC 컬렉션 거절 — 스타일별로 분리해 업로드)
- 사용자당 50개까지 (확장 필요 시 영업 문의)
삭제
대시보드 > 맞춤 폰트에서 폰트를 삭제하세요. 삭제된 폰트를 계속 참조하는 요청은 다른 폰트로 바꾸기 전까지 FONT_NOT_READY 로 실패합니다.
에러 코드
아래 에러는 /v1/image-translate/translate 에 user/<id> 폰트를 지정했을 때 반환됩니다. 파일 자체의 문제 — 크기, 형식, 사용할 수 있는 글리프가 없는 폰트 등 — 는 업로드할 때 대시보드에서 알려드립니다.
| 코드 | 발생 조건 |
|---|---|
FONT_NOT_FOUND | user/<id> 가 존재하지 않거나 내 폰트가 아님 |
FONT_NOT_READY | 삭제되었거나 거절된 폰트 |
FONT_GLYPH_COVERAGE | 타깃 언어의 스크립트 글리프가 폰트에 없음 |