技术手册 v1.0.0

文档
& 文件翻译器

在保持原始格式和样式的前提下,翻译 PDF、Word、Excel 和 PowerPoint 文件——由 Ollama、MLX 或 LMStudio 驱动,并支持自动检测源语言。

阅读文档
申请测试会话

1. 概览

XteVision TransDocs 是什么?适合哪些用户?

1.1 什么是 XteVision TransDocs?

XteVision TransDocs 是一个 Python 脚本与 Web 界面,用于在保持原始格式和样式的前提下翻译 Microsoft Office 文件和 PDF。它使用 Ollama、MLX 或 LMStudio 的 API,能够自动检测源语言(至少需要 50 个单词),也支持手动指定源语言。

1.2 为规模化而生

该工具专为 生产级工作负载与个人翻译任务设计。它支持多种界面语言(EN、CN、DE)和三个可互换的 AI 后端,既适合个人用户,也适合企业部署。

1.3 目标用户

  • 主要用户:定期将大量业务文档(Word、Excel、PowerPoint、PDF)跨语言翻译的团队
  • 次要用户:需要将翻译流程 API 化、并保持文档结构的开发者

2. 功能

TransDocs 能够做什么

自动语言检测

通过分析文档中至少 50 个单词来检测源语言。

手动指定源语言

可通过 -s / --src_lang 参数覆盖检测,优化 OCR 结果。

完整元素翻译

翻译段落、表格、页眉和页脚,同时保留排版。

混合式 PDF 流程

在有内嵌文本时直接使用,扫描页面则回退到 Poppler + Tesseract OCR。

可选 LLM 后端

可在 Ollama、MLX 或 LMStudio 之间任意选择,适配你的基础设施。

可选视觉复核

对于重要 PDF,可在翻译前用视觉模型逐页复核。

3. 要求

需要准备软件和系统包

  • Python 版本 3.7 或更高
  • Python 包:python-docxpython-pptxopenpyxlPillowpytesseractpython-dotenvrequestslangdetectflaskwerkzeug
  • PDF 系统包:poppler-utilspdftoppmpdftocairoPATH 中)以及 tesseract-ocr 和你的文档所需的语言包
  • LLM 后端访问:Ollama、MLX 或 LMStudio。若后端需要认证,请设置 TRANSDOC_API_TOKEN

4. 安装

配置环境并安装依赖

4.1 下载与准备

cd TransDocs
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate

4.2 安装依赖

pip install -r requirements.txt

4.3 安装系统包(Debian/Kali)

sudo apt-get install -y poppler-utils tesseract-ocr tesseract-ocr-eng

根据你的源文档需要,安装更多 Tesseract 语言包。

4.4 配置

根据需要调整 .env 中的设置。完整的支持键列表请参见 配置 章节。

5. 配置

.env 文件中的运行时设置

可通过 .env 管理运行时设置,做法与 invoicer 类似。支持的键包括:

用途
TRANSDOC_PROVIDER所选后端提供程序
TRANSDOC_OLLAMA_URLOllama 基础 URL
TRANSDOC_MLX_URLMLX 后端 URL
TRANSDOC_LM_STUDIO_URLLMStudio 后端 URL
TRANSDOC_DEFAULT_MODEL未指定时的默认模型
TRANSDOC_API_TOKEN后端的认证令牌
TRANSDOC_UPLOAD_DIR上传文件目录
TRANSDOC_OUTPUT_DIR翻译输出目录
TRANSDOC_SECRET_KEYFlask 会话密钥
TRANSDOC_HOSTWeb 界面绑定的主机
TRANSDOC_PORTWeb 界面绑定的端口
TRANSDOC_DEBUG启用 Flask 调试模式
TRANSDOC_LOG_FILE日志文件路径
TRANSDOC_TESSERACT_LANGS显式 OCR 语言(如 eng+deu

6. 命令行接口

从终端翻译文档

transdoc.py 脚本可以从命令行运行。对于 PDF 输入,流程是混合式的:文本类 PDF 直接提取,扫描版或纯图像页面则回退到 OCR。若已知源语言,传入 -s 可改善 OCR 语言选择。CLI 与 Flask 应用都会自动加载 .env,且 CLI 支持通过 -p/--provider-b/--base_url 选择后端。

6.1 参数

参数名称说明
-iinput_file输入文档路径(必填)
-ooutput_file翻译后保存路径(必填)
-ttarget_lang目标语言代码(如 endefr)(必填)
-kapi_token认证用的 API 令牌(必填)
-mmodel要使用的模型名称(如 llama3.2
-ssrc_lang源语言代码(省略时自动检测)

6.2 示例

自动检测源语言进行翻译:

python transdoc.py -i input.docx -o output.docx -t en -k your_api_token

从指定源语言进行翻译:

python transdoc.py -i input.docx -o output.docx -t en -k your_api_token -s fr

使用特定模型进行翻译:

python transdoc.py -i input.docx -o output.docx -t en -k your_api_token -m custom_model

7. Web 界面

可选的 Flask 界面

Web 界面让用户无需使用命令行即可上传文档并接收翻译结果,从而提升易用性。这是基于 Flask 的参考实现,目前未经测试

7.1 配置

pip install flask werkzeug

7.2 运行 Web 应用

python app.py

在浏览器中打开 http://localhost:5000,然后:

  • 上传文档:选择要翻译的 .docx 文件
  • 源语言:可选地输入源语言代码
  • 目标语言:输入目标语言代码
  • 模型:可选地指定其他模型
  • API 令牌:输入你的后端令牌
  • 翻译:点击按钮开始处理
  • 下载:完成后下载翻译后的文档
注意:Web 界面为参考且未经测试的实现。对于关键任务场景,建议优先使用稳定的 CLI 路径。

8. 日志

监控与调试输出

脚本会将详细信息同时记录到控制台和名为 translation_debug.log 的文件。日志默认设置为 DEBUG 级别,捕获所有级别的消息。

  • 控制台输出:脚本运行时的实时反馈
  • 日志文件:便于排查问题的持久记录

8.1 调整日志级别

若希望减少控制台输出的详细程度,可在脚本中调整日志级别:

console_handler.setLevel(logging.INFO)  # 将 DEBUG 改为 INFO

9. 故障排除

常见问题与解决方案

9.1 脚本无法执行

  • 检查日志输出:确认日志级别设置为 DEBUG
  • 验证文件路径:确认输入文件路径存在。
  • 检查依赖:确认已安装所有必需的 Python 包。
  • API 令牌:确认令牌正确并具备权限。

9.2 语言检测失败

  • 文本不足:文档可能少于 50 个单词,请使用 -s 手动指定源语言。

9.3 PDF OCR 缓慢或不准确

  • 安装语言包:确保已安装正确的 Tesseract 语言包。
  • 显式设置 OCR 语言:使用 TRANSDOC_TESSERACT_LANGS,例如 export TRANSDOC_TESSERACT_LANGS=eng+deu
  • 检查 Poppler 工具:确认 pdftoppmpdftocairoPATH 中。

9.4 API 与输出问题

  • API 错误:确认令牌有效、网络连接正常,并校验 API URL。
  • 未生成输出文件:检查写权限,并查看 translation_debug.log
  • Web 应用问题:若端口被占用,可在 app.run(debug=True, port=5001) 中更改端口。