SlideForge translates .pptx files into 8 languages while preserving every font, color, chart, and image. Upload a deck, pick a target language, get the translated .pptx back in seconds. $0.02 per slide. Text-run-level replacement — no regeneration, no broken layouts.
Why PowerPoint translation is hard
Translating a slide deck is deceptively difficult. Google Translate handles the words fine, but slides aren't documents — they're spatial layouts where every element has a precise position and size.
- Text expansion — German text is ~30% longer than English. “Revenue” becomes “Einnahmen”. “Key Performance Indicators” becomes “Leistungskennzahlen.” Text boxes overflow.
- Font fallback — some fonts don't support accented characters or CJK scripts. Text silently falls back to a system font and looks wrong.
- Charts and tables — embedded chart labels, table headers, and axis titles need translation too. Most tools skip these entirely.
- Formatting loss — copy-pasting translated text back into slides destroys bold, italic, color, and font size within mixed-format text runs.
The usual workflow: export to text, translate, manually paste back into 47 text boxes across 15 slides. Budget two hours per deck.
How SlideForge handles it
The translation engine works at the text-run level. It reads every text run in the .pptx (including tables, charts, and speaker notes), translates with context awareness (the LLM sees surrounding runs for consistency), and writes the translated text back into the same run — preserving font, size, color, bold, italic, and position.
When translation expands text beyond its original shape bounds, the response includes overflow warnings per slide so you know which text boxes might need manual width adjustment.
Quick start
curl -X POST https://api.slideforge.dev/v1/translate \
-H "Authorization: Bearer sf_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_id": "SLIDE_JOB_ID",
"target_language": "de"
}'Returns 202 Accepted with a job_id. Poll GET /v1/jobs/{job_id} until complete. The translated .pptx is at pptx_url.
Supported languages
Eight languages today: English, German, French, Spanish, Italian, Portuguese, Dutch, Polish. Source language is auto-detected by default.
Three translation paths
1. From a previous SlideForge job
If you generated or rendered a slide with SlideForge, just pass the job_id. The engine grabs the .pptx from storage and translates it.
# Translate a slide you already generated
resp = requests.post(
"https://api.slideforge.dev/v1/translate",
headers={"Authorization": "Bearer sf_live_YOUR_KEY"},
json={
"job_id": "generate-abc123",
"target_language": "fr",
},
)2. From an uploaded file
Send the .pptx as base64 for files under ~10 MB:
import base64, requests
with open("deck.pptx", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
resp = requests.post(
"https://api.slideforge.dev/v1/translate",
headers={"Authorization": "Bearer sf_live_YOUR_KEY"},
json={
"pptx_base64": b64,
"target_language": "es",
"include_notes": True, # also translate speaker notes
},
)3. Via MCP
In Claude Desktop, use the translate_deck tool. The agent handles upload, polling, and preview inline. Or use upload_file with purpose: "translate" for files from your local machine.
Options
include_notes: true— also translate speaker notes (default: false)include_tables: true— translate table cells (default: true)concise_mode: true— ask the LLM to prefer shorter translations for tight text boxes (default: false)source_language: "auto"— auto-detect source language (default)
Pricing
$0.02 per slide, any deck size. A 20-slide deck costs $0.40. Failed translations are refunded. Compare that to professional translation services ($5-15 per slide) or the hours spent copy-pasting text back into formatted slides.
Concise mode for German and French
German and French translations often expand 20-30% in length. Set concise_mode: trueto instruct the LLM to prefer shorter phrasings where possible — “Umsatz” instead of “Umsatzerlöse,” “CA” instead of “Chiffre d'affaires.” The result still reads naturally but fits tighter text boxes.
Get started
Sign up for $3 free credit (enough for 150 slides of translation), or read the API reference.