Translate pptx
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.From its SKILL.md
npx -y skills add smartdatabrokers/slideforge-mcp --skill translate-pptxAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.6 KB, as published. Nobody here has run it
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 toolupload_assetwithpurpose=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_deckon 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