英文PDFの読書を止めない辞書ツールをつくった
きっかけ
ブラウザで英文の PDF を読んでいるときに知らない単語に出会った際、辞書アプリに切り替えることなく、その場で意味を確認したいと考えました。また、調べた単語を自動で記録しておき、後から復習できるようにしたいと思ったのもきっかけです。
学んだこと
- 選択語の取得: ほかのアプリで選択中の文字列を取得する共通の手段はありません。今回はスクリプトから自動で「Ctrl+C」を送信し、クリップボード経由で読み取ったあとに、クリップボードを元の内容へ復元する方法を採用しました。
- 対象アプリの限定: 「Ctrl+C」は、ターミナルでは処理の中断になり、エクスプローラーではファイルのコピー操作になってしまいます。そのため、動作対象をブラウザや PDF ビューアなどの許可リストに絞り込みました。
- 活用形の検索: 通常の検索順では、
catsを引いたときに原形のcatが上位に出てきませんでした。文中の 1 語を調べる場合は、完全一致と語形復元(見出し語化)のみで検索したほうが、目的の語を正確に表示できます。 - 記録の保存先: 辞書データベースは再構築することがあるため、単語帳データは別ファイルに保存するようにしました。これにより、辞書データを再取り込みしてもユーザーの記録が消える心配がありません。
自分なりの理解
操作が便利になればなるほど、「裏で何が起きているか」を意識しておく必要があると感じました。
たとえば「ダブルクリックするだけで意味が出る」という手軽さは、裏で別のアプリに対してキー入力を送信することで成り立っています。そのため、送信先アプリの限定やクリップボードの復元、一時停止のチェックといった安全策もセットで作る必要がありました。
また、当初のアイデアに固執せず、実際の利用シーンを優先して仕様を決める大切さも実感しました。「選択してマウスオーバー」という操作は、選択を終えた時点でカーソルがすでに単語の上にあり、より効率的で、手数が少ないダブルクリック起動を選びました。
実践へのつなげ方
- 読書: 英語の論文や技術資料を読む際に、読む流れを止めることなくスムーズに単語を調べます。
- 語彙学習: 単語帳に記録された検索回数を確認し、何度も調べている単語を優先して覚えるようにします。
- ツール作り: 今後ほかのアプリに影響を与えるツールを作る際は、誤動作したときの影響をあらかじめ洗い出し、対象を絞る設計から始めるようにします。
次に試すこと
まずは英文 PDF を読む際にこの機能を使ってみます。そのうえで、単語帳の中で調べた回数が多い単語に「★」を付けて重点的に見直す予定です。