# Surgepix Ppt Translate

> Translate a PowerPoint file (PPT/PPTX only) to a target language via SurgePix API and return a download URL. Use when the user says "translate ppt", "翻译PPT", "PPT翻译", "pptx translate", or wants a deck localized. Language: always pass --language as the target (ja / Japanese / 日语 / en / zh, etc.). Do NOT use for pdf/docx — unsupported. Output rule: show ONLY the download URL; NEVER fabricate links.

- Skill: `surgepix/surgepix-ppt-translate` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add surgepix/surgepix-ppt-translate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/surgepix/surgepix-ppt-translate/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: SurgePix (https://skillmd.com/u/surgepix)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/surgepix/surgepix-ppt-translate

---


# SurgePix PPT / PPTX Translate

Translate a **`.ppt` / `.pptx`** deck to a target language and return the translated file download URL. **PDF and DOCX are not supported.**

## Language consistency

`--language` is the **target language for the translated deck**, not the agent's reply language. Free-text values are accepted (e.g. `ja`, `Japanese`, `日语`).

| Priority | Rule |
|----------|------|
| 1 | User names a target ("翻译成日文", "to English") → pass that as `--language` |
| 2 | Ambiguous → ask which target language |
| 3 | Never silently pick an unrelated default |

- Reply to the user in the same language they used in their request.

## When to use

- User says "翻译PPT", "PPT翻译", "translate ppt", "translate pptx", "把幻灯片翻成英文"
- User has a local `.ppt`/`.pptx` or a URL to one

## Prerequisites

- Node.js >= 18
- `SURGEPIX_API_KEY` and `SURGEPIX_BASE_URL` configured (see Step 0)

---

## What the Skill Does

| Action | Description |
|--------|-------------|
| Translate PPT | Upload local file if needed, then call translate API |
| Reject non-PPT | Fail early on pdf/docx (and other extensions) |
| Async / sync | Default poll for result; `--nowait true` returns `taskId` |
| Download | Return `download` URL of the translated pptx |

> Multi-page decks can take a long time — prefer `--nowait true` and **surgepix-query-task** for large files.

---

## Setup

**Requirement:** Set `SURGEPIX_API_KEY` and `SURGEPIX_BASE_URL` via **surgepix-setup**. Do **not** ask the user to paste the API key into chat.

Script: `<skills-dir>/surgepix-ppt-translate/scripts/ppt_translate.mjs`.

---

## Usage Examples

**Local file → Japanese (sync):**
```bash
node "<skills-dir>/surgepix-ppt-translate/scripts/ppt_translate.mjs" \
  ./deck.pptx \
  --language Japanese
```

**URL + async (recommended for long decks):**
```bash
node "<skills-dir>/surgepix-ppt-translate/scripts/ppt_translate.mjs" \
  --path "https://example.com/files/deck.pptx" \
  --language zh \
  --nowait true
# Then query with surgepix-query-task
```

---

## Workflow

### Step 0: Check environment

```bash
node "<skills-dir>/surgepix-setup/scripts/check_env.mjs"
```

### Step 1: Collect inputs

- Source: local `.ppt`/`.pptx` or HTTPS URL
- Target language: required (`--language`)
- If user offers pdf/docx → refuse and ask for ppt/pptx

### Step 2: Run

```bash
node "<skills-dir>/surgepix-ppt-translate/scripts/ppt_translate.mjs" \
  "<path-or-url>" \
  --language "<target>" \
  [--session-id <id>] \
  [--nowait <true|false>]
```

### Step 3: Present result

- Show only API `download` / `taskId`
- Never invent URLs; never expose tokens

---

## Parameters

| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| `<path-or-url>` / `--path` | Yes | — | Local ppt/pptx or URL |
| `--language` | Yes | — | Target language free text |
| `--session-id` | No | auto | Session for iteration |
| `--nowait` | No | `false` | `true` = async `taskId` |

---

## Notes

- **Only** `.ppt` / `.pptx`. Not pdf/docx.
- Local files are uploaded by the script — never pass raw local paths to the API.
- Missing env → **surgepix-setup**.

