-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Translation services
These routes call a translation service: text goes in, a translation comes back. Some of these services run a language model behind their API, but none takes a prompt from this tool. They need no model and often no key. They also cannot answer a question, so everything in this tool that asks the model something is off on them.
Pick one with --api_format.
--api_format |
service | key | target languages |
|---|---|---|---|
google |
Google Translate's public web endpoint | none | most; the source is detected |
deepl |
DeepL through the RapidAPI DeepL Translator |
--key, or BBM_DEEPL_API_KEY
|
DeepL's list; others are refused with DeepL do not support …
|
deeplfree |
DeepL's free web endpoint | none | DeepL's list |
caiyun |
Caiyun |
--key, or BBM_CAIYUN_API_KEY
|
Simplified Chinese, English, Japanese |
tencent |
Tencent TranSmart | none | Chinese or English |
customapi |
your own HTTP service | none; the address goes in --api_base
|
whatever your service does |
Both DeepL routes send the source as English. Use them for English books.
Caiyun publishes a test token, 3975l6lr5pcbvidl6jl2, for trying the route; for your own, follow this tutorial.
bbook_maker \
--book_name my_book.epub \
--api_format google \
--language zh-hantDeepL
bbook_maker \
--book_name my_book.epub \
--api_format deepl \
--key ${deepl_key} \
--language jaDeepL free
bbook_maker \
--book_name my_book.epub \
--api_format deeplfree \
--language deCaiyun
bbook_maker \
--book_name my_book.epub \
--api_format caiyun \
--key ${caiyun_key} \
--language zh-hansTencent
bbook_maker \
--book_name my_book.epub \
--api_format tencent \
--language zh-hansCustom API
bbook_maker \
--book_name my_book.epub \
--api_format customapi \
--api_base https://your.host/translate \
--language jaThe tool sends one POST per paragraph to --api_base, form-encoded, with three fields: text, source_lang and target_lang. It reads the translation from the data field of the JSON answer. Each request times out after 10 seconds, and the tool waits 5 seconds between requests. --source_lang reaches your service here.
-
No prompt.
--prompthas no place to go; the text is sent alone. -
No session.
--use_context sessionis refused: there is no conversation to keep. -
No plan classification by the engine itself. On an EPUB the run falls back to the
--translate-tagsselection (pby default), so verse or tables outside<p>stay untranslated. Name an LLM classifier and the book gets a full plan while the engine translates:--classify-model gpt-6-luna(it readsOPENAI_API_KEY), or a provider entry'sclassify_model. This was run end to end on Google Translate. Without one,--plan-classify modelis refused, and--plan-classify allstill translates every block the plan finds without asking anyone. See Plan mode. -
No glossary.
--glossaryis read only by the OpenAI- and Codex-shaped routes; here it is ignored with a warning. -
No stated source language on
google,deepl,deeplfree,caiyunandtencent.--source_langis ignored with a warning; onlycustomapi(and theqwenLLM route) send it.
Everything else works: --test, --resume, --single_translate, the per-format flags on the Formats pages.
Caiyun prints will sleep 60s for the time limit when it is rate-limited, and waits. DeepL free and Tencent pause between requests on their own. The patient retry policy applies to every route.
These pages are generated from the repository's docs/ directory (Home from README.md, 首页 from README-CN.md) by tools/docs_to_wiki.py; edit them there.
-
English
- Home
- Quick start
- Translate with an agent
- Installation
- EPUB
- Other formats
- Endpoints and models
- Evaluation
- Reference
- 中文