翻訳コントロール
何が自分から翻訳を始め、何は決して始めないのか。そして始まったあと、どの段落が飛ばされるのか。
設定 → 翻訳 → 翻訳の制御 → 制御を管理 を開きます。
ここには 6 行の設定が並び、合わせて 1 つの問いに答えます。こちらが何も押さないとき、Read Frog は何を翻訳するのか。

ここにあるどの設定も、Read Frog がそのサイトで動作してよいかどうかは決めません。それはサイト制御で、設定 → 環境設定 → 拡張機能の有効化 にあります。そこで除外したサイトには、そもそも何かを始める Read Frog がいないため、ここに追加しても何も変わりません。
ウェブサイトで始める
URL パターンを書く一覧が 2 つあります。
| 一覧 | 役割 |
|---|---|
| ウェブサイトに基づく自動翻訳 | 開いた時点で翻訳が始まるサイト |
| ウェブサイトに基づく自動翻訳の除外 | 言語のルールに一致しても、自分から翻訳を始めないサイト |
除外の一覧が先に照合され、そちらが完全に優先されます。両方に一致したページ、あるいは除外の一覧に一致しつつ言語も自動翻訳の言語一覧に入っているページは、どちらの場合も何も始まりません。全体としては使いたいルールから 1 つのサイトだけを外したいとき、これが使えます。
どちらの一覧も、Read Frog の他の場所と同じ URL パターンを使います。example.com はそのホストちょうどを指し、*.example.com はサブドメインと本体をまとめて対象にします。インストール直後の自動翻訳の一覧には例として *.news.ycombinator.com が入っていますが、削除して構いません。
パターンを手で書く代わりにポップアップのサイトごとのスイッチを使うと、Read Frog は *.host の形で保存します。指定したのはホスト名 1 つではなく、1 つのサイトだからです。
言語で始める
言語に基づく自動翻訳 は、ページで検出された言語が一覧に入っているときに翻訳を始めます。サイトを 1 つずつ挙げるのではなく、「英語のページはどこにあっても翻訳する」と言いたいときのルールです。
これは検出が実際に答えを出せることが前提です。言語を判定できなかったページはどの言語ルールにも一致せず、検出された言語が一覧にないページはそのまま放っておかれます。検出そのもの — ローカルで行うか LLM に任せるか — は 設定 → API プロバイダー → 言語検出 で設定します。
段落をスキップする
上の 2 行は翻訳を始めるかどうかを決めます。続く 3 行は、始まった翻訳がどの段落を飛ばすかを決めます。
言語に基づく自動スキップ は言語の一覧を受け取ります。そのいずれかとして検出された段落は、送信されずにスキップされます。自分が読める言語が一部に混ざっているページで役に立ちます。
その下には、ターゲット言語のための独立したスイッチがあります。すでに翻訳先の言語になっている段落を、リクエストを送らずにスキップします。初期状態でオンになっていて、対訳ページの訳文側がもう一度翻訳されるのを止めているのがこのスイッチです。
どちらも段落ごとにローカルの検出を走らせるだけで、モデルへのリクエストは発生しません。そしてどちらも、短いテキストでは推測を避けます。ターゲット言語によるスキップには 50 文字以上、一覧に挙げた言語によるスキップには 10 文字以上が必要です。それより短いものは、誤って飛ばす危険を避けて翻訳されます。
短いテキストフィルター は最小文字数と最小単語数、2 つのしきい値です。どちらかを下回るテキストは翻訳されずに残ります。どちらも初期値は 0 で、設定するまで長さによる絞り込みは行われません。一致するサイトルールがあれば、1 つのウェブサイトだけしきい値を上書きできます。
ページ上の短い 1 行がどうしても翻訳されないときは、まずこのしきい値を見てください。このフィルターはホバー翻訳にも効きます — 段落にポインターを合わせても免除されません。
サイトごとの DOM の扱い
最後の行はサイトルールに続きます。これはまた別の種類のコントロールです。このページを翻訳するかどうかではなく、ページをどうたどるか — どの要素を本文として扱い、どれに触れず、どのしきい値を上書きするか — を決めます。組み込みのルールは拡張機能に同梱されていて、自分のルールも追加できます。
