コンテンツにスキップ

フォーマット対応翻訳

yakuは入力フォーマットを検出し、構造を保持するように翻訳戦略を調整します。キー、コードブロック、URLなどの翻訳不要な要素はそのまま残ります。

yakuは以下の優先順位でフォーマットを判定します:

  1. --formatオプション — 明示的な指定:--format json
  2. -fのファイル拡張子.md.json.yaml.yml
  3. デフォルト — プレーンテキスト
拡張子検出されるフォーマット
.md.markdown.mdxMarkdown
.jsonJSON
.yaml.ymlYAML
その他テキスト

yakuはMarkdownドキュメント全体をLLMに送信し、構造を保持する追加ルールを適用します:

Terminal window
yaku --to ja -f README.en.md -o README.md

翻訳される要素:

  • 段落テキスト
  • 見出しテキスト
  • リスト項目のテキスト
  • リンクの表示テキスト(例: [この部分](url)
  • 引用テキスト

そのまま保持される要素:

  • 見出しマーカー(######
  • コードブロック(フェンスおよびインデント)
  • インラインコード(バッククォート)
  • リンクURLと画像パス
  • フロントマター(--- ... ---
  • HTMLタグ
  • リストおよび引用マーカー
  • ファイルパス、URL、メールアドレス

入力(README.en.md):

# Quick Start
Install the package:
```bash
npm install my-package
```
See the [documentation](https://example.com) for more details.
Terminal window
yaku --to ja -f README.en.md

出力:

# クイックスタート
パッケージをインストールします:
```bash
npm install my-package
```
詳細は[ドキュメント](https://example.com)をご覧ください。

見出しマーカー、コードブロック、URLは保持されます。散文のみが翻訳されます。

yakuはすべての文字列値を抽出し、一括で翻訳し、元の構造でJSONを再組み立てします:

Terminal window
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
}
}
Terminal window
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と同じ仕組みです — 文字列値が抽出、翻訳、再組み立てされます:

Terminal window
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: false
Terminal window
yaku --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")はそのまま保持されます。

デフォルトのフォーマットです。入力全体がそのままLLMに送信されます:

Terminal window
echo "Hello, world" | yaku --to ja
yaku --to ja "Good morning"

構造的な解析は行われません。短いテキスト、段落、その他の非構造化コンテンツに使用してください。

--formatで自動検出を上書きできます:

Terminal window
# ファイル拡張子がなくてもstdinをMarkdownとして扱う
cat doc.txt | yaku --to ja --format md
# .txtファイルをYAMLとして扱う
yaku --to ja -f data.txt --format yaml