Medium で記事を読んでいると時折知らない単語が出てくる。そんなとき iOS であれば簡単に辞書を引けるのだろうが、あいにく Android ではこのへんのサービスレベルが低い。ブラウザ上ではアドオンを使って似たようなこともできるようだが、Medium の専用アプリを使っているとこの手も使えない。結局、範囲選択→コピー→アプリ切替→ペーストという冴えない動作が必要になる。Look Up を使うと英英辞典を引けるらしいが、日本語や非西欧言語は蚊帳の外のようだ。
Medium アプリでは共有メニューから選択範囲を辞書へ渡すことも一応できる。一応、というのは、実際に渡される文字列は “選択文字列” by AUTHORNAME https://link.medium.com/ARTICLEID
となるからだ。これでは辞書を引くことはできない。英語以外の言語も扱う必要から、私は GoldenDict を使っている。
Google 翻訳アプリを導入すると、「タップして翻訳」という機能が使える。これは常駐してクリップボードを監視する。クリップボードへテキストが入り、オーバーレイ表示されているアイコンがクリックされると、Google 翻訳の結果を表示してくれる。使い勝手はなかなかよい。だが、Google 翻訳は辞書ではないので単語を調べるには不向きだ。Google がこちらの操作を監視しているのもなんとなく気持ち悪い。 Android を使っておいてなんだという気もするけれど。
仕方がないので、共有メニューから渡された文字列を適当に加工して再度辞書アプリへ投げる処理を用意する。今回は Automagic を使う。トリガーは Send/Share Intent Received
とし、文字列中に link.medium.com
があればよけいな部分を除去して単語だけを抽出し、それを GoldenDict へインテントで送る。
見切れている部分は次のとおり。
mobi.goldendict.android.PopupActivity
putString("android.intent.extra.TEXT", "{text}")
辞書を引くには、範囲選択→SHARE→Send/Share Intent Received とする。手元の端末では GoldenDict に英和辞典以外の辞書も導入してあるから、いつでも多言語の迷宮に入れる。
MacroDroid でも同じようなものを作ろうとしたが、インテント受信の選択肢はあるのに、なぜか共有メニューで MacroDroid が出てこなかった。調べ方が悪いのか、明示的インテントしか受けられない仕様なのかはわからないが、惜しい。