コンテンツにスキップ

用語集

用語集ファイルは翻訳全体で用語の一貫性を確保します。特定の用語をどう翻訳するか、または翻訳せずにそのまま保持するかを定義すると、yakuがLLMプロンプトにこれらのルールを注入します。

作業ディレクトリに.yaku-glossary.yamlというファイルを作成します:

.yaku-glossary.yaml
ja:
deployment: デプロイ # 常にこの訳語を使用
container: コンテナ
Kubernetes: ~ # そのまま保持
Docker: ~ # そのまま保持

通常通り翻訳します。yakuが用語集を自動的に読み込みます:

Terminal window
yaku --to ja -f docs.en.md

LLMは以下のような指示を受け取ります:

  • 「次の訳語を使用してください:deployment → デプロイ、container → コンテナ」
  • 「次の用語は原語のまま保持してください(翻訳しないこと):Kubernetes、Docker」

用語集ファイルはYAML形式です。用語はターゲット言語コードでグループ化されます:

<ターゲット言語>:
<用語>: <訳語> # この訳語に翻訳
<用語>: ~ # 原語のまま保持(YAMLのnull)

1つのファイルに複数の言語セクションを含めることができます:

ja:
container: コンテナ
Kubernetes: ~
zh-TW:
container: 容器
Kubernetes: ~

yakuは--toターゲット言語に一致するセクションのみを読み込みます(大文字小文字を区別しません)。例えば、--to jaja:JA:Ja:に一致します。一致するセクションがない場合、yakuは空の用語集を使用します。

文字列値を指定して、用語の翻訳方法を定義します:

ja:
software: ソフトウェア
database: データベース
machine learning: 機械学習

yakuがjaに翻訳する際、これらの用語を必須の翻訳としてLLMプロンプトに注入します。

~(YAMLのnull)を使って、用語を原語のまま保持するようyakuに指示します:

ja:
Kubernetes: ~
Docker: ~
API: ~
GitHub: ~

翻訳中に変更すべきでないブランド名、固有名詞、技術用語に便利です。

--glossary <パス>を使うと、yakuはそのファイルのみを読み込みます。指定しない場合、yakuは2つのデフォルトの場所をチェックし、マージします(後のファイルの用語が優先):

  1. ~/.config/yaku/glossary.yaml — すべてのプロジェクトで共有するグローバルな用語(最初に読み込み)
  2. .yaku-glossary.yaml(カレントディレクトリ) — プロジェクト固有の用語(最後に読み込み、優先)

両方のファイルが存在する場合、両方が読み込まれます。同じ用語が両方にある場合、プロジェクト固有のファイルが優先されます。

用語集の読み込みを完全にスキップするには:

Terminal window
yaku --to ja --no-glossary -f docs.en.md

例:プロジェクト用語集 + グローバル用語集

Section titled “例:プロジェクト用語集 + グローバル用語集”

変更したくないブランド名のグローバル用語集を設定します:

~/.config/yaku/glossary.yaml
ja:
GitHub: ~
Docker: ~
Kubernetes: ~
zh-TW:
GitHub: ~
Docker: ~
Kubernetes: ~

各プロジェクトにプロジェクト固有の用語を追加します:

/path/to/my-project/.yaku-glossary.yaml
ja:
container: コンテナ
deployment: デプロイ
service: サービス

/path/to/my-project/からyaku --to jaを実行すると、両方のファイルが読み込まれます。グローバル用語集がブランド名を保持し、プロジェクト用語集がドメイン固有の用語を統一します。

Terminal window
yaku --to ja --glossary ~/work/shared-terms.yaml -f docs.en.md

--glossaryを使用すると、そのファイルのみが読み込まれます — デフォルトのパスはスキップされます。

  1. 読み込み — yakuは用語集ファイルを読み込み、--to言語のセクションを検索します。
  2. 注入 — 翻訳エントリは"次の訳語を使用してください:software → ソフトウェア"になります。原語保持エントリは"次の用語は原語のまま保持してください:Kubernetes、Docker"になります。
  3. 翻訳 — LLMはテキストと一緒に用語集の指示を受け取ります。
  4. 検証 — 翻訳後、yakuは~でマークされた用語が出力に残っているか安全チェック(EnforceKeepOriginal)を実行します。これは安全策です — 主な強制はプロンプト経由で行われます。

プロンプト注入方式のため、用語集はすべてのバックエンド(Gemini、OpenAI、Anthropic、ホステッド)およびすべてのフォーマット(テキスト、Markdown、JSON、YAML)で動作します。

.yaku-glossary.yaml
ja:
# 料理名は原語のまま保持
ratatouille: ~
croissant: ~
miso: ~
dashi: ~
# 調理用語を統一
sauté: ソテー
julienne: 千切り
mise en place: ミザンプラス
zh-TW:
ratatouille: ~
croissant: ~
sauté: 煎炒
julienne: 切絲
Terminal window
yaku --to ja -f recipe.en.md -o recipe.ja.md
  • オープンソースプロジェクト — 翻訳全体でブランド名や技術用語の一貫性を保つ。
  • ドキュメントサイト — 標準的な用語を統一(例: 常に「container」を「コンテナ」と翻訳)。
  • 規制産業 — 法律用語や医療用語の翻訳を固定。
  • 複数翻訳者のワークフロー — 全員が同じ語彙を使うことを保証。
  • 少しずつ始める。 不整合に気づいたときだけ用語を追加してください。10〜20個の用語でほとんどのプロジェクトをカバーできます。
  • ブランド名には~を使う。 「GitHub」「Kubernetes」「Docker」などの用語はほぼ常にそのまま保持すべきです。
  • 普遍的な用語にはグローバル用語集を使う。 ブランド名や一般的な技術用語は~/.config/yaku/glossary.yamlに入れて、どこでも適用されるようにしましょう。
  • プロジェクト用語集は作業ディレクトリに配置する。 yakuはコマンドを実行したディレクトリの.yaku-glossary.yamlを探します。
  • --contextと組み合わせる。 用語集は特定の用語を管理し、--contextは全体的なトーンとドメインを設定します。