入出力
yakuは3つの方法で入力を受け付けます。以下の優先順位で確認されます:
| 優先度 | 方法 | 例 |
|---|---|---|
| 1(最高) | ファイル (-f) | yaku --to ja -f article.en.txt |
| 2 | 位置引数 | yaku --to ja "Hello, world" |
| 3 | stdinパイプ | echo "Hello" | yaku --to ja |
| 4(最低) | 対話入力 | yaku --to jaと入力し、テキスト + Ctrl+D |
複数が指定された場合、優先度の高いソースが使われます。
ファイル入力(-f)
Section titled “ファイル入力(-f)”1つまたは複数のファイルを翻訳します。複数ファイルの場合は内容が結合されます:
# 単一ファイルyaku --to ja -f README.en.md
# 複数ファイルyaku --to ja -f chapter1.en.md -f chapter2.en.mdyakuはファイル拡張子(.md、.json、.yaml)からフォーマットを自動検出します。詳しくはフォーマット対応翻訳をご覧ください。
短いテキストをコマンドラインで直接指定します:
yaku --to ja "Good morning"yaku --to ja "The meeting is tomorrow at ten."複数の引数はスペースで結合されます:
yaku --to ja Hello world# "Hello world"が翻訳されますstdinパイプ
Section titled “stdinパイプ”他のコマンドからテキストをパイプします:
echo "Hello, world" | yaku --to jacat article.en.md | yaku --to jagit log --oneline -5 | yaku --to jacurl -s https://example.com/api/docs | yaku --to jastdinは-fオプションと位置引数のどちらも指定されていない場合にのみ読み取られます。yakuはstdinがパイプかターミナルかを検出します:
-
パイプモード — サイレントに読み取り(例:
echo "Hello" | yaku --to ja) -
対話モード — 入力なしでターミナルで
yaku --to jaを実行すると、yakuがテキスト入力を促します:Enter text to translate (Ctrl+D to finish):テキストを入力または貼り付けて、Ctrl+Dで送信します。
stdout(デフォルト)
Section titled “stdout(デフォルト)”yakuは翻訳されたテキストをstdoutに書き込み、それ以外は書き込みません。エラー、ヒント、詳細情報はstderrに出力されます。これにより、パイプ時の出力がクリーンに保たれます:
# クリップボードにパイプ(macOS)echo "Hello" | yaku --to ja | pbcopy
# 他のコマンドにパイプyaku --to ja -f report.en.md | wc -w
# ファイルにリダイレクトyaku --to ja -f doc.en.md > translated.mdファイル出力(-o)
Section titled “ファイル出力(-o)”ファイルに直接書き込み:
yaku --to ja -f README.en.md -o README.mdyakuはstderrに確認メッセージを表示します:
Wrote README.md詳細出力(--verbose)
Section titled “詳細出力(--verbose)”モデル名、トークン使用量、経過時間をstderrに表示:
echo "Hello" | yaku --to ja --verbosestdout:
こんにちはstderr:
Model: gemini-2.5-flash | Tokens: 42 in / 38 out | Time: 1.2s詳細情報はstderrに出力されるため、stdoutのパイプはクリーンなままです:
echo "Hello" | yaku --to ja --verbose | pbcopy# クリップボードに「こんにちは」が入り、ターミナルにモデル情報が表示される出力サニタイズ
Section titled “出力サニタイズ”yakuは翻訳テキストから一般的なLLMアーティファクトを自動的にクリーンアップします:
- 前置きの除去 — 「Here is the translation:」や「Translation:」のような不要なプレフィックスを除去
- 末尾の説明の除去 — LLMが二重改行の後に追加する注釈を除去(例: 「Note: I translated X as Y because…」)
- 囲み引用符の除去 — LLMが追加することがある
"text"や「text」のラッパーを除去 - コードフェンスの除去 — 出力を囲む
```ラッパーを除去
これはすべてのバックエンドで自動的に実行されます。有効化する必要はありません。