为什么选择 yaku?
yaku 是一个在终端中翻译文字、文件和结构化文档的 CLI 工具。安装后执行 yaku --to zh-CN "Hello",就能得到翻译结果——不需要 API key、不需要账号、不需要任何配置。
yaku 的设计是为了处理真实世界的文件:翻译 Markdown 时不会破坏格式、翻译 JSON 和 YAML 时只动值而不动 key,还能通过术语表文件来统一用词。它从 stdin、文件或参数读取输入,并输出到 stdout,能自然地融入脚本和管道工作流。
这个页面帮助你判断 yaku 是否适合你的需求。
yaku 能做什么
Section titled “yaku 能做什么”- 翻译不同语言之间的文字 ——支持 LLM 后端所支持的任何语言对。
- 润色文章 ——改善你以非母语撰写的文字,提升语法和流畅度,而不进行翻译。
- 保留结构 ——翻译 Markdown、JSON 和 YAML 时不破坏格式。key、代码块、URL 和 front matter 都保持原样。
- 控制术语 ——术语表文件可以锁定特定词汇的翻译方式,或让它们保持不翻译。
- 融入管道工作流 ——默认从 stdin 读取、输出到 stdout,可以和
curl、gh、git、jq以及任何其他 CLI 工具组合使用。
yaku 不做的事
Section titled “yaku 不做的事”yaku 的范围是帮助你跨越语言障碍。超出这个范围的功能被刻意排除:
| 不在范围内 | 改用 |
|---|---|
| 代码生成或解释 | 通用 AI CLI(llm、aichat、sgpt) |
| 文字摘要 | 通用 AI CLI |
| 问答或对话 | ChatGPT、Claude 或通用 AI CLI |
| 格式转换(例如 Markdown → HTML) | pandoc |
| 不涉及翻译场景的拼写检查 | aspell、languagetool |
| 图形界面翻译 | Google 翻译、DeepL |
简单判断法: 如果一个任务不涉及跨越语言障碍,yaku 就不是合适的工具。
yaku 和其他工具的比较
Section titled “yaku 和其他工具的比较”vs. Google 翻译 / DeepL / ChatGPT
Section titled “vs. Google 翻译 / DeepL / ChatGPT”这些是浏览器工具。你必须离开终端、复制文字、粘贴、获取结果,再粘贴回来。yaku 省去这个来回:
# 不用再复制粘贴到浏览器:echo "Bonjour, comment ça va ?" | yaku --to zh-CNcat error.log | yaku --to zh-CN --context "nginx error log"yaku --to zh-CN -f README.en.md -o README.mdyaku 还能保留文件结构(JSON key、Markdown 格式),并支持术语表的术语控制——这些都是浏览器工具做不到的。
vs. 通用 AI CLI(llm、sgpt、aichat)
Section titled “vs. 通用 AI CLI(llm、sgpt、aichat)”这些工具把任意 prompt 传给 LLM。你可以用它们翻译,但每次都要自己写 prompt:
# 使用通用 AI CLI:echo "Hello" | llm "translate this to Simplified Chinese"
# 使用 yaku:echo "Hello" | yaku --to zh-CN差别在于:
| yaku | 通用 AI CLI | |
|---|---|---|
| Prompt 工程 | 内置,针对翻译质量调优 | 你自己写 prompt |
| 格式保留 | 自动处理 Markdown、JSON、YAML | 手动(希望 LLM 遵循你的指示) |
| 术语表支持 | 内置(.yaku-glossary.yaml) | 没有 |
| 输出整洁度 | 已清理——不会有”以下是翻译:“之类的前言 | 原始 LLM 输出 |
| 范围 | 仅翻译和润色 | 任何你能 prompt 的事 |
如果你需要一把处理所有 AI 任务的万能工具,用 llm 或 aichat。如果你要可靠、有结构、术语一致的翻译,用 yaku。
vs. Translate Shell(trans)
Section titled “vs. Translate Shell(trans)”Translate Shell 使用传统翻译引擎(Google、Bing),不是 LLM。它快速且免费,但:
- 没有格式感知——无法在保留 key 的同时翻译 JSON/YAML
- 没有术语表或术语控制
- 翻译质量受限于底层引擎(常常太直译、不自然)
- 没有润色模式
Translate Shell 适合快速查词。yaku 更适合开发输出、结构化文件和对质量有要求的翻译。
什么时候该用 yaku
Section titled “什么时候该用 yaku”- 你经常翻译开发文档(文档、i18n 文件、README、错误信息)。
- 你想让整个项目的术语保持一致(术语表)。
- 你处理结构化文件(Markdown、JSON、YAML),需要保留结构。
- 你以非母语写作,想要润色你的文字。
- 你想把翻译纳入脚本或 CI/CD 流程。
什么时候不该用 yaku
Section titled “什么时候不该用 yaku”- 你需要通用 AI 助手 ——yaku 只做翻译和润色。代码生成、摘要或问答请用
llm、aichat或sgpt。 - 你需要实时互动对话 ——yaku 是无状态的(一个输入,一个输出)。来回对话请用 ChatGPT 或 Claude。
- 你需要完全离线、零配置的翻译 ——yaku 需要网络连接(托管服务)或本地运行的 LLM(例如 Ollama)。它不内置模型。
- 你需要图形界面翻译 ——yaku 只在终端使用。浏览器翻译请用 Google 翻译或 DeepL。