跳到內容

輸入與輸出

yaku 接受以下四種輸入方式,依優先順序檢查:

優先順序方式範例
1(最高)檔案(-fyaku --to zh-TW -f article.en.txt
2位置參數yaku --to zh-TW "Hello, world"
3stdin pipeecho "Hello" | yaku --to zh-TW
4(最低)互動模式yaku --to zh-TW 然後輸入文字 + Ctrl+D

同時提供多種輸入時,優先順序較高的來源會被採用。

翻譯一個或多個檔案。指定多個檔案時,內容會被串接:

Terminal window
# 單一檔案
yaku --to zh-TW -f README.en.md
# 多個檔案
yaku --to zh-TW -f chapter1.en.md -f chapter2.en.md

yaku 會根據副檔名(.md.json.yaml)自動偵測格式。詳見格式感知翻譯

在命令列直接傳入短文字:

Terminal window
yaku --to zh-TW "Good morning"
yaku --to zh-TW "The meeting is tomorrow at ten."

多個參數會以空格連接:

Terminal window
yaku --to zh-TW Hello world
# 翻譯 "Hello world"

從其他指令 pipe 文字:

Terminal window
echo "Hello, world" | yaku --to zh-TW
cat article.en.md | yaku --to zh-TW
git log --oneline -5 | yaku --to zh-TW
curl -s https://example.com/api/docs | yaku --to zh-TW

只有在沒有 -f 選項且沒有位置參數時,yaku 才會讀取 stdin。yaku 會偵測 stdin 是 pipe 還是終端機:

  • Pipe 模式 — 靜默讀取(例如 echo "Hello" | yaku --to zh-TW

  • 互動模式 — 如果在終端機中執行 yaku --to zh-TW 且沒有輸入,yaku 會提示你直接輸入文字:

    Enter text to translate (Ctrl+D to finish):

    輸入或貼上文字,然後按 Ctrl+D 送出。

yaku 將翻譯結果寫入 stdout,不含其他內容。錯誤訊息、提示和詳細資訊都輸出到 stderr。這讓輸出保持乾淨,方便 pipe 串接:

Terminal window
# Pipe 到剪貼簿(macOS)
echo "Hello" | yaku --to zh-TW | pbcopy
# Pipe 到其他指令
yaku --to zh-TW -f report.en.md | wc -w
# 重導向到檔案
yaku --to zh-TW -f doc.en.md > translated.md

直接寫入檔案:

Terminal window
yaku --to zh-TW -f README.en.md -o README.md

yaku 會在 stderr 印出確認訊息:

Wrote README.md

將模型名稱、token 用量和經過時間印到 stderr:

Terminal window
echo "Hello" | yaku --to zh-TW --verbose

stdout:

你好

stderr:

Model: gemini-2.5-flash | Tokens: 42 in / 38 out | Time: 1.2s

詳細資訊輸出到 stderr,所以 stdout 仍然可以乾淨地 pipe:

Terminal window
echo "Hello" | yaku --to zh-TW --verbose | pbcopy
# 剪貼簿得到「你好」,終端機顯示模型資訊

yaku 會自動清除翻譯文字中常見的 LLM 雜訊:

  • 移除前導語 — 刪除不需要的前綴,例如「Here is the translation:」或「Translation:」
  • 移除尾部說明 — 刪除 LLM 在雙換行後附加的備註(例如「Note: I translated X as Y because…」)
  • 移除包裹引號 — 刪除 "text"「text」 包裹
  • 移除程式碼圍欄 — 刪除輸出周圍的 ``` 包裹

這在所有後端上自動執行。你不需要手動啟用。