💡 この記事の3行まとめ
- ローカルOCR認識による翻訳の成否を分けるのは、翻訳エンジンの性能ではなく画面から訳文までに通信が入る箇所がいくつあるかです。
- 経路を「画面 → 認識 → 訳 → 表示」の4区間に分け、各区間の通信を0にすると、閉域網でも同じ手順が使えます。
- Mac専用OCR翻訳『Zipp』は
⌃Sで囲んで 0.3秒、Apple Visionの端末内処理で画面画像の外部保存ゼロ。無料でダウンロード(登録不要)、1日15回までです。
📌 この記事の対象読者
- 業務ネットワークが外部通信を制限していて、翻訳サービスに接続できない方
- 検証環境がインターネットから切り離されていて、Docker のログを読む手段に困っている方
- 「ローカル処理」と表示されていても、実際に通信していないか確かめたいエンジニア
「ローカルOCR認識」が崩れるのは、どこかに通信が残っているから
Docker のログを日本語で読みたい。そのために翻訳サイトを開こうとしたら、プロキシに止められた。あるいは、閉域網の検証機で docker compose up が失敗し、英語のログだけが残っている。こういう場面で「オフラインでも使える翻訳」を探すと、たいてい期待外れになります。
理由は単純で、翻訳と一言でいっても、経路には複数の区間があるからです。区間のどこかに1つでも通信が入れば、その経路は「ローカルOCR認識」ではありません。
区間を分けると、次の4つになります。
区間1:画面から文字を取り出す。 ターミナルに表示されている文字を、テキストとして取得する部分です。ここでクラウドのOCR APIを呼ぶ道具は、この時点で通信が発生します。スクリーンショットをアップロードするタイプも同じです。
区間2:文字を認識する。 画像から文字を判別する処理です。ここをサーバーで行う構成もあります。認識精度は高いことが多い一方、画像そのものが送られます。
区間3:翻訳する。 認識した英文を日本語に変換する部分です。多くのサービスがここで通信します。APIキーを必要とする道具は、ほぼ確実にここで外部と通信します。
区間4:結果を表示する。 訳文を画面に出す部分です。ここは通常ローカルですが、結果をクラウドに保存する設計だと、表示のたびに取得が走ります。
「オフライン対応」と書いてある道具でも、区間1と区間3のどちらかが通信していれば、閉域網では動きません。逆に、区間1から区間3までがすべて端末内で完結していれば、区間4もローカルなので、経路全体が閉じます。ローカルOCR認識かどうかは、機能の有無ではなく区間の数で決まります。
Docker のログは、この確認に向いた題材です。行が短く、失敗と成功がはっきりしていて、通信を切った状態でも同じ操作を再現できます。つまり「動いた/動かない」の判定が、自分の環境で完結します。
解決策:4区間の通信を0にし、閉域網で手順を固定する
手順1:ネットワークを切って、現状の経路を測る
最初に、いま使っている方法がどこで止まるかを確認します。Mac の Wi-Fi を切り、有線も外し、必要なら ping で外部に出られないことを確かめます。その状態で、普段の翻訳手順をそのまま実行します。
結果は3つに分かれます。
- 何も起きない(読み込みが終わらない)→ 区間1か区間3で通信している
- エラーが出る(接続できません)→ 通信している区間が特定できた
- 訳が出る → 経路はローカルで閉じている
この切り分けで重要なのは、どの操作で止まったかを記録することです。ブラウザのタブを開いた瞬間に止まったのか、貼り付けた後に止まったのか。前者なら区間1、後者なら区間3です。原因の区間が分かれば、置き換えるべき部品も決まります。
手順2:区間1と区間3を端末内の処理に置き換える
次に、通信している区間を端末内の処理に置き換えます。Mac専用OCR翻訳『Zipp』は、区間1の文字認識と区間3の翻訳を、どちらも Apple Vision フレームワークによる端末内処理で行います。スクリーンショットを保存して送る工程も、APIキーの設定もありません。
操作は ⌃S(Control + S)を押し、読みたい範囲をドラッグするだけです。Docker のログであれば、エラー行とその前後1〜2行を囲みます。囲み終えると 0.3秒 で訳が最前面に表示されます。この一連の流れに、外部への送信は含まれません。
閉域網での確認は簡単です。手順1と同じくネットワークを切った状態で囲んでみてください。訳が出れば、区間1から区間4までが端末内で閉じています。説明を読むのではなく、切って試す。これがローカルOCR認識の唯一の確かめ方です。
手順3:訳文を残さない運用に固定する
最後に、運用を決めます。閉域網では「訳文をどこに保存したか」が問題になりやすいので、訳はその場で読み、保存しないという方針にします。Zipp の訳は最前面に表示され、必要なら閉じるだけです。ログファイルを別途作らないので、機密情報の置き場所が増えません。
読む順序も固定します。docker logs --tail 50 <container> で末尾を出し、最初に失敗を示す行を探し、その行を囲む。訳でエラーの種類を掴んだら、イメージ名やパスは原文のまま確認する。この順序を守ると、1回の囲みで判断が終わります。
1日に読める回数は 15回までです。閉域網の作業は時間がかかりがちですが、囲む回数を「判断が止まる場面」に限定すれば、この範囲で十分に回ります。
経路の閉じ方を比べる
【文字の取得】
従来:画像をアップロードするため通信が発生する
Zipp:画面を囲むだけで、画像を送らない
【文字認識】
従来:サーバー側で処理し、画像が外部に渡る
Zipp:Apple Vision により端末内で完結
【翻訳】
従来:APIキーと通信が必要
Zipp:端末内処理のため、通信が不要
【閉域網での動作】
従来:プロキシや認証で止まり、代替手段がない
Zipp:通信を切った状態でも訳が出る
【設定の手間】
従来:アカウント、キー、プロキシ設定が必要
Zipp:インストール後に ⌃S だけで使える
【試しやすさ】
従来:契約や管理者承認が必要な場合がある
Zipp:無料でダウンロード(登録不要)/1日15回まで
よくある質問(FAQ)
Q. ネットワークを切って試すと、本当に訳が出るか不安です。 A. 出るか出ないかは、その場で判定できます。切った状態で囲み、0.3秒 で訳が表示されるかを見てください。表示されない場合は、その道具はどこかで通信しています。確認のための特別な設定は不要です。
Q. 閉域網の Mac にインストールするには、何か準備が要りますか? A. 配布物を取得する時点では通信が必要です。取得後にオフライン環境へ持ち込む場合は、組織の持ち込みルールに従ってください。導入手続きの可否は管理者の判断領域なので、本記事では動作の性質(端末内処理・画面画像の外部保存ゼロ)までを扱います。
Q. 社内のログには機密情報が含まれます。大丈夫ですか? A. 端末内処理であれば、ログの内容は Mac の外に出ません。ただし「端末内で処理する」という性質と「その端末にログを置いてよい」という許可は別の話です。後者は組織のポリシーに従ってください。
Q. 1日15回を超えると、閉域網の作業が止まります。 A. 15回は囲む操作の回数です。1回で複数行を読めるため、処理できる行数は回数より多くなります。まず起動失敗、次にビルド失敗というように、判断が止まる場面へ順番に使うと収まります。
ローカルOCR認識は、機能ではなく経路の性質
「オフラインでも使える翻訳」を探すと、たいてい対応言語や精度の話になります。しかし閉域網で必要なのは、精度の高さではなく経路のどこにも通信が入らないことです。画面から訳文までを4つの区間に分け、それぞれの通信を0にする。この確認さえできれば、同じ手順がどの環境でも再現できます。
今日、ネットワークを切った状態で Docker のログを一度だけ ⌃S で囲んでみてください。訳が出たなら、その経路は自分の環境で閉じています。その一歩が、通信制限を言い訳にしない読み方の起点になります。
▼ 無料でダウンロード(登録不要・1日15回まで)
zipp-mac.surge.sh