Install
openclaw skills install @catorch/pagetranslate-scanned-pdf-translatorUse this skill whenever the user wants a scanned PDF, a photographed page or an image of text (PNG, JPG, WEBP, TIFF) translated. PageTranslate reads the scan with OCR, translates it and puts the translation back on the page, so the result is still a PDF or image, not loose text.
openclaw skills install @catorch/pagetranslate-scanned-pdf-translatorTranslate a scanned PDF or a photo of a page. PageTranslate reads it with OCR, translates it, and puts the translation back on the page.
PageTranslate translates the file itself, not pasted text. For a sentence or a paragraph, translate it yourself.
es, fr, de, it, ja, ko, ar, hi, ru.
Use pt-BR for Brazilian Portuguese, zh for Simplified and zh-TW for Traditional Chinese.
The source language is detected. If the user did not name a target language, ask.PAGETRANSLATE_API_KEY.Use the pagetranslate MCP tools when they are available. Otherwise use curl (next section).
upload_document with the file's absolute path and the target language. It returns
job_id, word_count, price and next_step.payment_url, give the user that link. They pay by card in the browser,
and the translation starts by itself.0.00 (covered by the account's word balance), call start_translation.get_translation about every 30 seconds until status is completed. If
status is failed, tell the user the reason given.download_translation with output_dir set to the source file's folder. It never
overwrites a file. Tell the user the saved path.list_translations shows earlier jobs, for example to download one again.
Same steps over HTTPS. Every request carries Authorization: Bearer $PAGETRANSLATE_API_KEY.
API=https://api.pagetranslate.ai/api/v1
# 1. Upload (free). The response has job_id and quote.total_cents.
curl -sS -X POST "$API/upload/" -H "Authorization: Bearer $PAGETRANSLATE_API_KEY" \
-F "file=@/path/to/file" -F "requested_language=es"
# 2. Start from the account's word balance. A 400 "Insufficient credits" means the user
# pays by card at https://pagetranslate.ai/dashboard?resume=JOB_ID#upload instead.
curl -sS -X POST "$API/jobs/JOB_ID/translate" -H "Authorization: Bearer $PAGETRANSLATE_API_KEY" \
-H "Content-Type: application/json" -d '{}'
# 3. Poll until "status" is "completed" ("payment_status" shows whether it was paid).
curl -sS "$API/jobs/JOB_ID" -H "Authorization: Bearer $PAGETRANSLATE_API_KEY"
# 4. Download. -OJ keeps the server's file name; run it in the folder to save into.
curl -sS -OJ "$API/jobs/JOB_ID/download" -H "Authorization: Bearer $PAGETRANSLATE_API_KEY"
pending: the job is unpaid. Give the user the payment link again.payment_status is paid.