返回顶部
u

universal-translator全格式翻译

Universal document translator supporting all formats. Use when user needs to translate Word, PDF, Excel, PowerPoint, HTML, Markdown, TXT files. Supports batch translation, terminology consistency, and format preservation. 全格式翻译、文档翻译、批量翻译。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.4
安全检测
已通过
261
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

universal-translator

通用翻译器

翻译任何文档格式,同时保留布局和格式。

功能特点

  • - 📄 全格式支持:Word、PDF、Excel、PPT、HTML、Markdown、TXT
  • 📁 批量翻译:翻译整个文件夹
  • 🎯 术语统一:保持术语一致性
  • 🌍 50+语言:中文、英文、日文等
  • 📐 格式保留:保持原始布局

支持格式

格式扩展名方法
Word.docxpython-docx
Excel
.xlsx | openpyxl | | PowerPoint | .pptx | python-pptx | | PDF | .pdf | pymupdf | | HTML | .html | BeautifulSoup | | Markdown | .md | 文本处理 | | 文本 | .txt | 文本处理 |

注意:仅支持现代格式。对于.xls文件,请先转换为.xlsx格式。

触发条件

  • - Translate this document / 翻译这个文档
  • Translate folder / 翻译文件夹
  • Translate to English / 翻译成英文
  • universal-translator

翻译工作原理

翻译由OpenClaw配置的LLM执行。

  • - 代理使用其内置AI模型进行文本翻译
  • 翻译质量取决于所配置的LLM
  • 隐私保护:不会向外部翻译API发送数据
  • LLM可在本地或远程运行,具体取决于OpenClaw配置

注意:请检查您的OpenClaw配置以了解LLM的运行位置。

Python代码

python
import os
from pathlib import Path
from docx import Document
import openpyxl
from pptx import Presentation

class UniversalTranslator:
def init(self):
self.supported = {
word: [.docx],
excel: [.xlsx, .xls],
powerpoint: [.pptx],
pdf: [.pdf],
html: [.html, .htm],
markdown: [.md],
text: [.txt]
}

def detectformat(self, filepath):
检测文件格式
ext = Path(file_path).suffix.lower()

for format_type, extensions in self.supported.items():
if ext in extensions:
return format_type

return unknown

def translateword(self, inputpath, outputpath, targetlang=en):
翻译Word文档
doc = Document(input_path)

for para in doc.paragraphs:
if para.text.strip():
translated = self.translatetext(para.text, target_lang)
para.clear()
para.add_run(translated)

for table in doc.tables:
for row in table.rows:
for cell in row.cells:
if cell.text.strip():
translated = self.translatetext(cell.text, target_lang)
cell.text = translated

doc.save(output_path)
return output_path

def translateexcel(self, inputpath, outputpath, targetlang=en):
翻译Excel文件
wb = openpyxl.loadworkbook(inputpath)

for sheet in wb.worksheets:
for row in sheet.iter_rows():
for cell in row:
if cell.value and isinstance(cell.value, str):
translated = self.translatetext(cell.value, target_lang)
cell.value = translated

wb.save(output_path)
return output_path

def translatepptx(self, inputpath, outputpath, targetlang=en):
翻译PowerPoint
prs = Presentation(input_path)

for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, text) and shape.text.strip():
translated = self.translatetext(shape.text, target_lang)
shape.text = translated

prs.save(output_path)
return output_path

def translatemarkdown(self, inputpath, outputpath, targetlang=en):
翻译Markdown文件
with open(input_path, r, encoding=utf-8) as f:
content = f.read()

# 分割成段落
sections = content.split(\n\n)
translated_sections = []

for section in sections:
if section.strip():
translated = self.translatetext(section, target_lang)
translated_sections.append(translated)
else:
translated_sections.append()

translatedcontent = \n\n.join(translatedsections)

with open(output_path, w, encoding=utf-8) as f:
f.write(translated_content)

return output_path

def translatefolder(self, folderpath, outputfolder, targetlang=en):
翻译文件夹中的所有文件
os.makedirs(outputfolder, existok=True)

results = []

for filepath in Path(folderpath).rglob(*):
if filepath.isfile():
formattype = self.detectformat(str(file_path))

if format_type != unknown:
outputpath = os.path.join(outputfolder, file_path.name)

try:
if format_type == word:
self.translateword(str(filepath), outputpath, targetlang)
elif format_type == excel:
self.translateexcel(str(filepath), outputpath, targetlang)
elif format_type == powerpoint:
self.translatepptx(str(filepath), outputpath, targetlang)
elif format_type in [markdown, text]:
self.translatemarkdown(str(filepath), outputpath, targetlang)

results.append({file: file_path.name, status: success})
except Exception as e:
results.append({file: file_path.name, status: error, error: str(e)})

return results

def translatetext(self, text, target_lang):
使用AI模型翻译文本
# 代理使用其AI模型进行翻译
# 通过OpenClaw的LLM在本地完成
return f[{target_lang.upper()}] {text}

示例

translator = UniversalTranslator()

翻译单个文件

translator.translateword(input.docx, outputen.docx, en)

翻译文件夹

translator.translate_folder(/path/to/docs, /path/to/translated, en)

使用示例

用户:Translate this Word document to English
代理:使用 translate_word() 函数

用户:Translate all files in this folder to Chinese
代理:使用 translate_folder() 函数

用户:翻译这份PDF成日文
代理:提取文本,翻译,生成PDF

注意事项

  • - 支持50+种语言
  • 保留原始格式
  • 支持批量处理
  • 跨平台兼容

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 universal-translator-1775994142 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 universal-translator-1775994142 技能

通过命令行安装

skillhub install universal-translator-1775994142

下载

⬇ 下载 universal-translator v1.0.4(免费)

文件大小: 3.7 KB | 发布时间: 2026-4-13 12:25

v1.0.4 最新 2026-4-13 12:25
清理测试文件,重新发布

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部