# 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.

- Skill: `smartdatabrokers/translate-pptx` (Agent Skill)
- Install (CLI): `npx skillmds@latest add smartdatabrokers/translate-pptx`
- Raw SKILL.md: https://api.skillmd.com/api/skills/smartdatabrokers/translate-pptx/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: smartdatabrokers (https://skillmd.com/u/smartdatabrokers)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/smartdatabrokers/translate-pptx

---


# 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)

```json
{
  "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

```json
{
  "target_language": "de",
  "pptx_url": "https://example.com/deck.pptx"
}
```

### If the user uploads a file

First upload via `upload_asset`:
```json
{
  "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`

