💡 この記事の3行まとめ

  1. Stack Overflow のコードが読めなくなる原因は、英語ではなくテキスト選択という運び方にあります。インデント・記号・行番号が移動の途中で壊れます。
  2. 代替は単純で、文字を選ぶのをやめ、画面の矩形を囲む。これだけでコードは原文のまま残ります。
  3. Mac専用OCR翻訳『Zipp』は ⌃S で矩形を囲んで 0.3秒、Apple Vision の端末内処理。無料でダウンロード(登録不要)、1日15回まで使えます。

📌 この記事の対象読者

  • 回答のコードをコピーして翻訳サイトに貼ったら、形が変わって読めなくなった経験のある方
  • インデントや記号が崩れて、どこがブロックの内側か分からなくなった方
  • コードは原文のまま読み、説明文だけを訳したいと考えている方

コードが読めなくなるのは、移動の仕方が原因

Stack Overflow の回答を翻訳して「読めない」と感じるとき、原因は英語力ではありません。コードを文字列として運ぼうとしたことです。

コードブロックをドラッグで選択してコピーすると、いくつかのものが同時に失われます。先頭の空白、タブとスペースの区別、行末の記号、バッククォート。翻訳サイトに貼った時点で、改行が段落に変換されたり、記号が全角に変換されたりします。結果として、if の内側にあるはずの行が外に出て見えたり、ネストの深さが分からなくなります。

さらに厄介なのが行番号です。Stack Overflow のコードブロックには行番号が付いていることがあります。これを一緒にコピーすると、翻訳サイトは行番号まで文章として扱います。訳文には数字が混ざり、コードの構造はさらに見えなくなります。

ここで起きているのは、表示されているものを、表示されていない形式に変換しているという問題です。画面には整形されたコードがあるのに、クリップボードという別の形式に写し替える。この写し替えの過程で情報が落ちます。落ちた情報を訳文から推測しようとするから、余計な時間がかかります。

逆に考えれば、写し替えをやめれば壊れません。画面に表示されている状態のまま読む。これが矩形で囲むという代替案の出発点です。文字を選ぶのではなく、範囲を指定する。選択の単位を変えるだけで、コードは原文のまま残ります。


解決策:文字を選ばず、矩形で囲む3手順

手順1:囲む単位を「文字」から「矩形」に変える

まず、マウスの使い方を変えます。行の途中から末尾までドラッグして文字を選ぶのではなく、訳したい範囲を四角く囲む操作に切り替えます。

⌃S(Control + S) を押すと範囲指定の状態になるので、訳したい箇所の左上から右下へドラッグします。このとき、行の先頭でぴったり合わせる必要はありません。多少はみ出しても、囲んだ矩形のなかの文字が読まれます。

この操作の利点は、選択という概念がないことです。テキストを選択していないので、クリップボードに何も入りません。入らないということは、壊れる余地もありません。コードブロックの上に矩形を重ねても、コードそのものは1文字も変化しません。

手順2:コードは囲まず、説明文だけを矩形で囲む

次に、囲む対象を選びます。原則はこうです。

  • 囲む:コードの直前に書かれた「このコードが何をするか」の1〜2文。手順の番号が付いた説明。エラーメッセージ。
  • 囲まない:コードブロック本体。インデントを含む構造。長い設定ファイルの断片。
  • 囲むか迷う:コメント行。英語の説明が書かれていることが多いので、囲む価値があります。

コードを囲まない理由は、コードは訳しても実行できないからです。必要なのは「何をするコードか」という意味であって、日本語化された擬似コードではありません。0.3秒 で訳が最前面に出ても、原文は隠れません。コードは原文のまま、説明だけ日本語で読む。この分担が、崩れない読み方の本体です。

手順3:崩れたときは「どこで崩れたか」を切り分ける

それでも崩れることがあります。そのときは、崩れた場所で原因を切り分けます。

  • インデントが消えた → テキスト選択してコピーした経路が残っています。矩形に戻してください。
  • 記号が全角になった → 翻訳サービス側の変換です。原文を見れば正しい記号が分かります。
  • 行番号が混ざった → 行番号を含む矩形で囲んでいます。番号の右側から囲み始めてください。
  • 改行が段落になった → 貼り付け先の仕様です。貼らない経路に変えれば発生しません。

この切り分けができると、崩れは「翻訳の不具合」ではなく「運び方の選択ミス」として扱えます。原因が分かれば、次回から同じ崩れは起きません。

3手順を守ると、コードは常に原文のまま、説明だけが日本語になります。1日15回までという範囲でも、コードを囲まない分だけ1回あたりの情報量が絞られ、読解の密度が上がります。


テキスト選択/矩形で囲むを比べる

【選択の単位】
従来:文字列(行の途中から途中まで)
Zipp:画面上の矩形(範囲指定)

【インデント】
従来:貼り付け先で潰れることがある
Zipp:原文が動かないため崩れない

【記号・行番号】
従来:変換されたり、訳文に混入することがある
Zipp:原文のまま残り、訳文と分離される

【コードの扱い】
従来:訳文に混ざり、構造が読めなくなる
Zipp:囲まなければ訳文に混ざらない

【戻るコスト】
従来:崩れた箇所を原文で確認し直す必要がある
Zipp:原文が隠れないので戻る必要がない

【試しやすさ】
従来:サービスごとに利用条件の確認が必要
Zipp:無料でダウンロード(登録不要)/1日15回まで


よくある質問(FAQ)

Q. 矩形で囲むと、行の一部しか訳されません。 A. 行の一部だけを訳したい場面では、それが正しい動作です。段落全体を読みたいときは、段落を囲む矩形を指定してください。囲む範囲は毎回自分で決められます。

Q. コードのコメントだけ訳したいときは? A. コメント行だけを細い矩形で囲みます。コード本体を含めなければ、訳文に識別子が混ざりません。コメントは英語の説明文なので、訳す価値が高い部分です。

Q. どうしてもコードの意味が分からないときは? A. その場合は訳ではなく、実行して確認するのが確実です。コードは読む対象と実行する対象が別で、訳文を読んでも動作は変わりません。意味が分からない行は、最小の再現コードで試すほうが早く解決します。

Q. 1日15回でコードの多い回答は読めますか? A. コードを囲まなければ消費は増えません。説明文とコメントに絞れば、コードの多い回答でも囲む回数は少なく済みます。むしろ回数の制約が、囲む範囲を選ぶ練習になります。


崩さない読み方は、運ばない読み方

コードが読めなくなるのは、英語の壁のせいではありません。文字として運ぼうとしたからです。運ばなければ壊れず、壊れなければ訳し直す必要もありません。矩形で囲み、コードは原文のまま残し、説明だけを日本語にする。この分担を一度体で覚えると、Stack Overflow の読み方は大きく変わります。

次の回答で、コードブロックには触れず、その上にある1文だけを ⌃S で囲んでみてください。コードが定位置に残ったまま、意味だけが日本語で出てくる。その手応えが、いちばん短い導入になります。

▼ 無料でダウンロード(登録不要・1日15回まで)
zipp-mac.surge.sh

`