Equalang
指向一个文件,它会上传该文件,等待任务完成,并将结果写在源文件旁边。你得到的是路径,而非文件内容——布局、表格、图片和公式都会保留,且不会有大文件进入对话。
操作会消耗用户的额度。在执行 translate 或 transcribe 之前,务必告知费用并获得同意。 estimate 可以免费获取一个文件的费用估算。
设置
密钥是一行内容,格式为 EQUALANG_API_KEY=el_...,放在 ~/.config/equalang/.env 文件中(如果设置了 $XDG_CONFIG_HOME,则放在该目录下):每台机器一个文件,与 Equalang MCP 服务器共享,并在重新安装或更新此技能时保留。用户可以在 https://equalang.com/api-keys 创建密钥。
dir="${XDG_CONFIG_HOME:-$HOME/.config}/equalang"
mkdir -p "$dir" && (umask 077 && echo 'EQUALANG_API_KEY=el_...' > "$dir/.env")
环境变量 EQUALANG_API_KEY 优先级高于文件。如果没有密钥,每个命令会回复如何获取密钥以及密钥应存放的位置。不要发明密钥——请询问用户。
命令
在此技能目录下运行;仅需 python3。每个命令输出一个 JSON 对象;--help 可查看命令的参数。
# 估算费用?上传但不启动任何操作;免费。`kept_until` 表示上传文件的保留时长。
python3 scripts/equalang.py estimate report.pdf
# -> {"file_id": "...", "credits_to_translate": 12.34, "credits_to_transcribe": null, ...}
# 翻译文件。支持本地路径、公开 URL(Equalang 会下载),或来自 estimate 的 --file-id。
python3 scripts/equalang.py translate report.pdf --to zh-CN
python3 scripts/equalang.py translate --file-id <file_id> --to zh-CN # 无需二次上传
python3 scripts/equalang.py translate https://example.com/deck.pptx --to ja -o ./out
# 录音:翻译字幕,或转写录音中的原语言内容。
python3 scripts/equalang.py translate talk.mp4 --to en --bilingual --format srt --format txt
python3 scripts/equalang.py transcribe interview.mp3 --format srt --format txt
# 批量翻译字符串(每条独立翻译;最多 50 条,每条最多 5,000 个字符,单次调用最多 20,000 字符)。
python3 scripts/equalang.py text "Save changes" "Delete project" --to de
# 长文本翻译——文章、笔记、.md 文件,最多 100,000 字符。Equalang 会按句子切分:不要自行拆分。
python3 scripts/equalang.py text --file notes.md --to ja -o notes.ja.md
# 再次查询任务状态 · 停止任务 · 查询余额 · 语言代码(无需密钥)
python3 scripts/equalang.py status <job_id> -o ./out
python3 scripts/equalang.py cancel <job_id>
python3 scripts/equalang.py balance
python3 scripts/equalang.py languages chinese
读取输出
已完成的任务会输出 outputs(每个包含 path)和 credits_charged。请将两者都告知用户。除非用户要求,否则不要读取生成的文件内容进行总结:它是一个完整的文档,使用路径的意义就在于其内容不进入对话。
失败时会输出 {"error", "code", "retryable"} 并退出码 1。仅在 retryable 为 true 时重试;INSUFFICIENT_CREDITS 表示用户需在 https://equalang.com/pricing 充值,而非重试。
值得了解的事项
- 格式。 文档:pdf, docx, pptx, xlsx, epub, html, txt。字幕:srt, vtt。图片:jpg, png, webp, bmp。录音:mp3, m4a, wav, flac, ogg, aac, opus, mp4, mov, webm, mkv。最大 100 MB。
transcribe仅接受录音文件。 - 结果不会覆盖已有文件。 结果文件会放置在本地源文件旁边(或在
-o DIR目录中,如果是 URL 则放在当前目录),文件名由 Equalang 生成;如果文件名已被占用,则会添加(1)。再次对已完成的任务执行status时,会指向已写入的文件,而非重新复制。 - 长文件耗时以分钟计,而非秒。 命令会等待并输出进度到 stderr。中断命令不会取消任务:使用
status <job_id>可恢复查询,cancel <job_id>可停止任务。已取消或失败的任务不收费。 - 录音按实际听到的语音计费——静音和音乐不计费——因此实际费用通常低于
estimate的估算值;文档费用则与estimate一致。 - 语言代码 如
en、zh-CN、zh-TW、ja、pt。从实时 API 获取,绝不自内存读取:languages列出文件支持的语言,languages --kind text列出text支持的更广泛集合,languages chinese按名称查找语言。省略--source-language则自动检测源语言。 - 多个文件? 分别估算每个文件,将数字相加,然后统一询问一次——不要自行决定遍历文件夹。
- 如果脚本未实现某些功能,其背后的 API 文档请参考:https://equalang.com/llms.txt