Translate PPTX
Use the slideforge MCP server to translate an existing PowerPoint deck without re-creating it from scratch. Every shape, chart, table, and embedded image stays exactly where it was — only the text content changes.
When to trigger
Any request to translate, localize, or change the language of a PowerPoint file. Examples:
- "Translate this deck to German"
- "Can you localize this presentation into Spanish?"
- "Convert my PPTX from English to French"
Tools used
translate_deck — main tool
upload_asset with purpose=translate — if the user uploads a file rather than passing a URL or job_id
Workflow
If the user has a prior slideforge job (preferred)
{
"target_language": "de",
"job_id": "<previous slide or deck job_id>"
}
No file transfer needed — fastest path.
If the user pastes a public URL to a PPTX
{
"target_language": "de",
"pptx_url": "https://example.com/deck.pptx"
}
If the user uploads a file
First upload via upload_asset:
{
"purpose": "translate",
"data": "<base64-encoded .pptx>",
"filename": "my-deck.pptx",
"target_language": "de"
}
Returns a job_id; poll or set include_preview to get the result inline.
Supported languages
32 languages, grouped by script family. source_language is auto-detected by default; override
if needed. No CJK or RTL scripts yet.
| Script |
Codes |
| Latin |
en, de, fr, es, it, pt, nl, sv, da, no, fi, is, pl, cs, sk, hu, ro, hr, sl, et, lt, lv, tr, ca, gl, id, vi |
| Cyrillic |
ru, uk, bg, sr |
| Greek |
el |
Full names: English, German, French, Spanish, Italian, Portuguese, Dutch, Swedish, Danish,
Norwegian, Finnish, Icelandic, Polish, Czech, Slovak, Hungarian, Romanian, Croatian, Slovenian,
Estonian, Lithuanian, Latvian, Russian, Ukrainian, Bulgarian, Serbian, Turkish, Catalan,
Galician, Indonesian, Vietnamese, Greek.
Useful options
include_notes: true — translate speaker notes (default false)
include_tables: true — translate table cells (default true)
concise_mode: true — prefer shorter translations when text boxes are tight (e.g., German is ~30% longer than English; enable to keep layouts clean)
Pricing
$0.02 per slide. A 20-slide deck = $0.40. 100-slide deck = $2.00.
Delivery
Download the file via header-auth: GET /v1/jobs/<job_id>/pptx with
Authorization: Bearer sf_live_YOUR_KEY (ownership-checked). To hand off a shareable link
instead, POST /v1/jobs/<job_id>/download-url mints a short-TTL, single-use, revocable one.
The file is a real, editable .pptx — every translated element stays as a native PowerPoint
shape.
Anti-patterns
- Don't re-generate the deck from scratch — that loses formatting and costs 10x more. Use
translate_deck on the existing file.
- Don't translate deck-by-deck in a loop if the user has 10 decks. Mention that the REST API supports batch calls for automation.
- Don't translate placeholder text like
{{company_name}} — flag these to the user before translating; they usually should stay as-is.
References
- MCP server:
https://api.slideforge.dev/mcp/
- Docs:
https://slideforge.dev/docs/mcp
- Translation API spec:
https://slideforge.dev/docs/api/translate
1---2name: translate-pptx3description: Translate a PowerPoint (.pptx) deck into another language while preserving all formatting, layouts, charts, tables, and embedded media. Use when the user asks to translate a deck, localize a presentation, convert a PPTX to German/French/Spanish/etc., or similar. Supports 32 languages across Latin, Cyrillic, and Greek scripts (no CJK/RTL yet). Requires the slideforge MCP server.4---56# Translate PPTX78Use the `slideforge` MCP server to translate an existing PowerPoint deck without re-creating it from scratch. Every shape, chart, table, and embedded image stays exactly where it was — only the text content changes.910## When to trigger1112Any request to translate, localize, or change the language of a PowerPoint file. Examples:13- "Translate this deck to German"14- "Can you localize this presentation into Spanish?"15- "Convert my PPTX from English to French"1617## Tools used1819- `translate_deck` — main tool20- `upload_asset` with `purpose=translate` — if the user uploads a file rather than passing a URL or job_id2122## Workflow2324### If the user has a prior slideforge job (preferred)2526```json27{28 "target_language": "de",29 "job_id": "<previous slide or deck job_id>"30}31```3233No file transfer needed — fastest path.3435### If the user pastes a public URL to a PPTX3637```json38{39 "target_language": "de",40 "pptx_url": "https://example.com/deck.pptx"41}42```4344### If the user uploads a file4546First upload via `upload_asset`:47```json48{49 "purpose": "translate",50 "data": "<base64-encoded .pptx>",51 "filename": "my-deck.pptx",52 "target_language": "de"53}54```5556Returns a `job_id`; poll or set `include_preview` to get the result inline.5758## Supported languages596032 languages, grouped by script family. `source_language` is auto-detected by default; override61if needed. No CJK or RTL scripts yet.6263| Script | Codes |64|---|---|65| Latin | en, de, fr, es, it, pt, nl, sv, da, no, fi, is, pl, cs, sk, hu, ro, hr, sl, et, lt, lv, tr, ca, gl, id, vi |66| Cyrillic | ru, uk, bg, sr |67| Greek | el |6869Full names: English, German, French, Spanish, Italian, Portuguese, Dutch, Swedish, Danish,70Norwegian, Finnish, Icelandic, Polish, Czech, Slovak, Hungarian, Romanian, Croatian, Slovenian,71Estonian, Lithuanian, Latvian, Russian, Ukrainian, Bulgarian, Serbian, Turkish, Catalan,72Galician, Indonesian, Vietnamese, Greek.7374## Useful options7576- `include_notes: true` — translate speaker notes (default false)77- `include_tables: true` — translate table cells (default true)78- `concise_mode: true` — prefer shorter translations when text boxes are tight (e.g., German is ~30% longer than English; enable to keep layouts clean)7980## Pricing8182$0.02 per slide. A 20-slide deck = $0.40. 100-slide deck = $2.00.8384## Delivery8586Download the file via header-auth: `GET /v1/jobs/<job_id>/pptx` with87`Authorization: Bearer sf_live_YOUR_KEY` (ownership-checked). To hand off a shareable link88instead, `POST /v1/jobs/<job_id>/download-url` mints a short-TTL, single-use, revocable one.89The file is a real, editable `.pptx` — every translated element stays as a native PowerPoint90shape.9192## Anti-patterns9394- Don't re-generate the deck from scratch — that loses formatting and costs 10x more. Use `translate_deck` on the existing file.95- Don't translate deck-by-deck in a loop if the user has 10 decks. Mention that the REST API supports batch calls for automation.96- Don't translate placeholder text like `{{company_name}}` — flag these to the user before translating; they usually should stay as-is.9798## References99100- MCP server: `https://api.slideforge.dev/mcp/`101- Docs: `https://slideforge.dev/docs/mcp`102- Translation API spec: `https://slideforge.dev/docs/api/translate`