这是一个基于Google Cloud Translation API的翻译工具,专为批量处理文档而设计。该工具能够智能识别文件语言,仅翻译需要翻译的内容,并且保留原始文档的格式和结构。它特别适合需要维护多语言文档库的团队和个人。

搜索本人的Github库 - Gcloud-translation-api.py

核心功能

  • 智能语言检测:使用langdetect库自动识别文档实际语言
  • 选择性翻译:仅翻译非目标语言的文档,避免重复处理
  • 格式保留:在翻译过程中保持原始文档的所有格式元素
  • 多种文件支持:支持Markdown、YAML、纯文本等多种文件格式
  • 自动重试机制:处理API限制和临时错误,确保翻译任务完成
  • 高效处理:通过预处理和智能跳过,优化翻译流程

技术架构

配置模块

工具通过环境变量和预设常量进行配置,包括:

  • Google Cloud项目信息
  • 翻译语言设置(源语言和目标语言)
  • API访问凭证
  • 翻译模型选择
  • 目标目录设置

语言处理模块

  • detect_language(): 检测文本语言
  • preprocess_file_type(): 预处理文件内容,移除格式符号以便准确检测语言

翻译核心模块

  • translate_text_with_llm(): 使用Google Cloud Translation API进行实际翻译
  • 实现了API调用频率限制和自动重试机制
  • 处理翻译请求的构建和发送

文件处理模块

  • get_file_type(): 识别文件类型
  • is_already_translated(): 判断文件是否需要翻译
  • process_files(): 处理目录中的所有文件

工作流程

  1. 初始化:验证环境变量,初始化Google Cloud客户端
  2. 文件遍历:递归遍历目标目录中的所有文件
  3. 语言检测
    • 读取文件内容
    • 预处理内容以移除格式元素
    • 使用langdetect检测实际语言
  4. 翻译决策
    • 如果文件已经是目标语言,则跳过
    • 否则,将文件内容发送给翻译API
  5. 保存结果:将翻译后的内容写回原文件,保留原始格式

优势特点

  • 精确的语言检测:通过预处理移除格式元素,确保语言检测的准确性
  • 高效的资源利用:只翻译必要的文件,避免重复处理
  • 格式完整保留:翻译过程不会破坏文档的原始格式和结构
  • 可靠的错误处理:完善的日志记录和错误重试机制
  • 易于扩展:模块化设计使其易于添加新功能或支持新文件类型

设置与使用

环境设置

  1. 确保已安装必要的Python库:

    pip install google-cloud-translate langdetect pyyaml ratelimit
    
  2. 设置Google Cloud环境变量:

    export GOOGLE_CLOUD_PROJECT="你的项目ID"
    export GOOGLE_APPLICATION_CREDENTIALS="凭证JSON文件路径"
    
  3. 可以将环境变量保存在Python虚拟环境的激活脚本中:

    # 在.venv/bin/activate末尾添加
    export GOOGLE_CLOUD_PROJECT="***"
    export GOOGLE_CLOUD_REGION="***"
    export GOOGLE_APPLICATION_CREDENTIALS="~/.venv/***.json"
    

使用方法

  1. 准备好需要翻译的文件目录
  2. 确保目标目录(默认为"en")已存在
  3. 运行脚本:
    python Gcloud-translation-api-llm.py
    
  4. 查看日志了解翻译进度和结果

语言检测策略

本工具使用langdetect库检测文件中的实际语言类别,定义为Actual_SOURCE_LANG。判断一份文件是否被跳过(不送去翻译)的唯一条件是:文件中的全部字符都是目标语言。

在语言检测前,preprocess_file_type()函数会对文件内容进行预处理,移除各种格式符号(HTML、Markdown、YAML等),确保这些格式元素不会影响语言检测的准确性。

使用场景

  • 多语言文档库的维护
  • 技术文档的国际化
  • 内容本地化项目
  • 大规模文档翻译任务
  • 开源项目的多语言文档

注意事项

  • 确保Google Cloud项目已启用Translation API
  • 注意API使用配额和费用
  • 对于特殊格式的文件,可能需要调整预处理逻辑
  • 建议在翻译前备份重要文件

通过这个工具,用户可以轻松实现文档的批量翻译,而无需担心格式丢失或不必要的重复翻译,大大提高了文档国际化的效率和质量。