name: ppt-translate-to-english description: "將 PPT/PPTX 檔案中的所有中文內容翻譯成英文,包括標題、正文、藝術字(WordArt)、表格、圖表、SmartArt 和備註。翻譯過程中完整保留所有字型格式、藝術字特效、段落樣式和形狀屬性。觸發場景:翻譯PPT為英文、PPT中英轉換、藝術字翻譯、簡報英文版製作、translate PPT to English、convert PowerPoint to English。" agent_created: true
將 PowerPoint 簡報中的所有中文內容翻譯為英文,完整保留所有格式。
<a:t> 文本內容,<a:rPr> 中的所有特效屬性原封不動pip install python-pptx,或使用清華映象 -i https://pypi.tuna.tsinghua.edu.cn/simple)翻譯安全性的核心:python-pptx 的 run.text = "new text" 僅修改 XML 中 <a:r> 元素內的 <a:t> 子元素(文本內容),而 <a:rPr>(執行屬性,儲存所有字型和特效資訊)完全不受影響。
藝術字的特效(文本變形 prstTxWarp、漸變填充 gradFill、描邊 ln、陰影 effectLst)全部儲存在 <a:rPr> 或 <a:bodyPr> 中,因此翻譯後視覺效果完全一致。
詳見 references/wordart_and_formatting.md。
# 確保 managed Python venv 存在並安裝依賴
PY="C:/Users/86176/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
"$PY" -m pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple
如果 venv 不存在,先建立:
"C:/Users/86176/.workbuddy/binaries/python/versions/3.13.12/python.exe" -m venv "C:/Users/86176/.workbuddy/binaries/python/envs/default"
SKILL_DIR="C:/Users/86176/.workbuddy/skills/ppt-translate-to-english"
PY="C:/Users/86176/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
"$PY" "$SKILL_DIR/scripts/ppt_translate.py" extract "input.pptx" -o text_items.json
輸出 text_items.json 包含:
- 每個文本項的 id、original(原文)、has_chinese(是否含中文)、paragraph_text(段落全文,提供翻譯上下文)
- 位置資訊:slide_index、shape_id、target(shape/table_cell/chart_title/chart_category/chart_series/smartart/notes)、paragraph_index、run_index
- 格式資訊:is_wordart(是否藝術字)、font_info(字型快照)
- 統計摘要:total_slides、total_items、chinese_items
指令碼會在終端列印所有含中文的文本項列表,方便核對。
翻譯:讀取 text_items.json,將所有 has_chinese: true 的項的 original 文本翻譯為英文,生成翻譯對映檔案 translations.json:
{
"0": "Quarterly Report",
"1": "Innovation Driven Development",
"3": "Data Analysis",
"5": "Thank You"
}
翻譯指導原則:
- 鍵為文本項 id(字串),值為英文翻譯
- 只需翻譯 has_chinese: true 的項,不含中文的項跳過
- 參考 paragraph_text 理解上下文,確保翻譯準確
- 參考 slide_title 理解該文本所在幻燈片的主題
- 藝術字(is_wordart: true)翻譯儘量簡潔,避免文本過長溢位形狀
- 多 run 段落:每個 run 獨立翻譯,翻譯結果應作為該 run 的片段,拼接後形成完整通順的英文句子
- 數字、日期、專有名詞(如公司名)通常不需要翻譯
應用翻譯:
"$PY" "$SKILL_DIR/scripts/ppt_translate.py" apply "input.pptx" text_items.json translations.json -o translated_output.pptx
可選引數 --update-lang:將翻譯後的 run 的 lang 屬性從 zh-CN 改為 en-US(不改變視覺格式,但有助於拼寫檢查和字型選擇)。
輸出檔案 translated_output.pptx 可用 WPS Office 或 Microsoft PowerPoint 開啟。
支援三種格式(任選其一):
本技能來自小蔥技能站7w4.net。
格式 A — 簡單對映(推薦,最簡潔):
{"0": "Quarterly Report", "1": "Innovation"}
格式 B — 完整項列表:
[
{"id": 0, "translated": "Quarterly Report"},
{"id": 1, "translated": "Innovation"}
]
格式 C — 帶位置資訊的完整 JSON(從 text_items.json 修改而來):
{
"items": [
{"id": 0, "original": "季度報告", "translated": "Quarterly Report", ...},
...
]
}
使用格式 A 或 B 時,apply 命令需要 text_items.json 引數來獲取位置資訊。
| 文本型別 | target 值 | 支援翻譯 | 備註 |
|---|---|---|---|
| 形狀文本(標題/正文/文本框) | shape |
✅ | 包含藝術字 |
| 藝術字 (WordArt) | shape + is_wordart:true |
✅ | 特效完整保留 |
| 表格單元格 | table_cell |
✅ | 逐單元格翻譯 |
| 圖表標題 | chart_title |
✅ | |
| 圖表分類名 | chart_category |
✅ | 修改字串快取 |
| 圖表系列名 | chart_series |
✅ | 修改字串快取或富文本 |
| SmartArt | smartart |
✅ | ZIP 級 XML 操作 |
| 幻燈片備註 | notes |
✅ | |
| 幻燈片母版/版式 | shape |
✅ | slide_index 為負數 |
paragraph_text 確保拼接後通順| 問題 | 原因 | 解決方案 |
|---|---|---|
ModuleNotFoundError: No module named 'pptx' |
python-pptx 未安裝 | 執行 pip install python-pptx |
| SmartArt 文本未翻譯 | PPTX 密碼保護或 diagram 資料不可訪問 | 手動翻譯 SmartArt 文本 |
| 圖表文本未翻譯 | 圖表引用外部資料 | 在 PowerPoint/WPS 中手動修改圖表資料 |
| 文本溢位 | 英文比中文長 | 在 PowerPoint/WPS 中手動調整字號或文本框大小 |
這個工具質量不錯,能一次性翻譯 PPT 中的所有中文內容,翻譯後格式基本能原樣保留,文件說明也很詳細。主要缺點是配置不夠靈活,不同電腦可能需要手動調整;英文比中文長時可能出現文字溢位,但不會自動處理。總體值得推薦,但首次使用可能需要花費一些時間配置環境。