这是一个基于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()
: 处理目录中的所有文件
工作流程
- 初始化:验证环境变量,初始化Google Cloud客户端
- 文件遍历:递归遍历目标目录中的所有文件
- 语言检测:
- 读取文件内容
- 预处理内容以移除格式元素
- 使用
langdetect
检测实际语言
- 翻译决策:
- 如果文件已经是目标语言,则跳过
- 否则,将文件内容发送给翻译API
- 保存结果:将翻译后的内容写回原文件,保留原始格式
优势特点
- 精确的语言检测:通过预处理移除格式元素,确保语言检测的准确性
- 高效的资源利用:只翻译必要的文件,避免重复处理
- 格式完整保留:翻译过程不会破坏文档的原始格式和结构
- 可靠的错误处理:完善的日志记录和错误重试机制
- 易于扩展:模块化设计使其易于添加新功能或支持新文件类型
设置与使用
环境设置
确保已安装必要的Python库:
pip install google-cloud-translate langdetect pyyaml ratelimit
设置Google Cloud环境变量:
export GOOGLE_CLOUD_PROJECT="你的项目ID" export GOOGLE_APPLICATION_CREDENTIALS="凭证JSON文件路径"
可以将环境变量保存在Python虚拟环境的激活脚本中:
# 在.venv/bin/activate末尾添加 export GOOGLE_CLOUD_PROJECT="***" export GOOGLE_CLOUD_REGION="***" export GOOGLE_APPLICATION_CREDENTIALS="~/.venv/***.json"
使用方法
- 准备好需要翻译的文件目录
- 确保目标目录(默认为"en")已存在
- 运行脚本:
python Gcloud-translation-api-llm.py
- 查看日志了解翻译进度和结果
语言检测策略
本工具使用langdetect
库检测文件中的实际语言类别,定义为Actual_SOURCE_LANG
。判断一份文件是否被跳过(不送去翻译)的唯一条件是:文件中的全部字符都是目标语言。
在语言检测前,preprocess_file_type()
函数会对文件内容进行预处理,移除各种格式符号(HTML、Markdown、YAML等),确保这些格式元素不会影响语言检测的准确性。
使用场景
- 多语言文档库的维护
- 技术文档的国际化
- 内容本地化项目
- 大规模文档翻译任务
- 开源项目的多语言文档
注意事项
- 确保Google Cloud项目已启用Translation API
- 注意API使用配额和费用
- 对于特殊格式的文件,可能需要调整预处理逻辑
- 建议在翻译前备份重要文件
通过这个工具,用户可以轻松实现文档的批量翻译,而无需担心格式丢失或不必要的重复翻译,大大提高了文档国际化的效率和质量。