フォーマット対応翻訳
yakuは入力フォーマットを検出し、構造を保持するように翻訳戦略を調整します。キー、コードブロック、URLなどの翻訳不要な要素はそのまま残ります。
フォーマット検出
Section titled “フォーマット検出”yakuは以下の優先順位でフォーマットを判定します:
--formatオプション — 明示的な指定:--format json-fのファイル拡張子 —.md、.json、.yaml、.yml- デフォルト — プレーンテキスト
| 拡張子 | 検出されるフォーマット |
|---|---|
.md、.markdown、.mdx | Markdown |
.json | JSON |
.yaml、.yml | YAML |
| その他 | テキスト |
Markdown
Section titled “Markdown”yakuはMarkdownドキュメント全体をLLMに送信し、構造を保持する追加ルールを適用します:
yaku --to ja -f README.en.md -o README.md翻訳される要素:
- 段落テキスト
- 見出しテキスト
- リスト項目のテキスト
- リンクの表示テキスト(例:
[この部分](url)) - 引用テキスト
そのまま保持される要素:
- 見出しマーカー(
#、##、###) - コードブロック(フェンスおよびインデント)
- インラインコード(バッククォート)
- リンクURLと画像パス
- フロントマター(
--- ... ---) - HTMLタグ
- リストおよび引用マーカー
- ファイルパス、URL、メールアドレス
入力(README.en.md):
# Quick Start
Install the package:
```bashnpm install my-package```
See the [documentation](https://example.com) for more details.yaku --to ja -f README.en.md出力:
# クイックスタート
パッケージをインストールします:
```bashnpm install my-package```
詳細は[ドキュメント](https://example.com)をご覧ください。見出しマーカー、コードブロック、URLは保持されます。散文のみが翻訳されます。
yakuはすべての文字列値を抽出し、一括で翻訳し、元の構造でJSONを再組み立てします:
yaku --to ja -f en.json -o ja.json翻訳される要素:
- 文字列値
そのまま保持される要素:
- すべてのキー
- 数値、真偽値、null
- ネスト構造
- 配列の順序
入力(en.json):
{ "nav": { "home": "Home", "about": "About Us", "contact": "Contact" }, "hero": { "title": "Build something great", "subtitle": "The fastest way to ship your product", "cta": "Get Started" }, "footer": { "copyright": "All rights reserved", "version": 2 }}yaku --to ja -f en.json -o ja.json出力(ja.json):
{ "nav": { "home": "ホーム", "about": "会社概要", "contact": "お問い合わせ" }, "hero": { "title": "素晴らしいものを作ろう", "subtitle": "製品を最速で届ける方法", "cta": "始める" }, "footer": { "copyright": "全著作権所有", "version": 2 }}キー、構造、数値のversionフィールドはそのまま保持されます。
JSONと同じ仕組みです — 文字列値が抽出、翻訳、再組み立てされます:
yaku --to ja -f en.yaml -o ja.yaml入力(en.yaml):
app: name: My Application description: A task management tool
messages: welcome: Welcome back! error: Something went wrong confirm: Are you sure?
settings: max_retries: 3 debug: falseyaku --to ja -f en.yaml -o ja.yaml出力(ja.yaml):
app: name: マイアプリケーション description: タスク管理ツール
messages: welcome: おかえりなさい! error: エラーが発生しました confirm: よろしいですか?
settings: max_retries: 3 debug: falseキー、整数値、真偽値は保持されます。文字列値のみが翻訳されます — "dark"や"urgent"のような短い単語の値も含みます。コード識別子(camelCase、snake_case、ALL_CAPS)やロケールコード(例: "en"、"zh-TW")はそのまま保持されます。
プレーンテキスト
Section titled “プレーンテキスト”デフォルトのフォーマットです。入力全体がそのままLLMに送信されます:
echo "Hello, world" | yaku --to jayaku --to ja "Good morning"構造的な解析は行われません。短いテキスト、段落、その他の非構造化コンテンツに使用してください。
フォーマットの強制
Section titled “フォーマットの強制”--formatで自動検出を上書きできます:
# ファイル拡張子がなくてもstdinをMarkdownとして扱うcat doc.txt | yaku --to ja --format md
# .txtファイルをYAMLとして扱うyaku --to ja -f data.txt --format yaml