【iPhone】ショートカットで辞書Appもどきを作る[PART3]

ショートカットAppを使って、iPhone内蔵辞書の使い勝手を向上させます。
最終目標としては、以下の3つの機能の実装です。

(1) 検索を連続して行える機能
(2) 検索履歴を残せる機能
(3) 検索の強化(辞書に未定義の単語にも対応させる)

ただ、上記の内容を1記事で全部書くのは流石に長いなと感じたので、機能ごとに3つに記事を分けることにしました。

前回記事(PART2)までで(1)(2)の機能については実装し終えたので、今回は(3)の検索の強化のお話です。

↓前回記事↓


↓前々回記事↓


1. はじめに

前回記事(PART2)までで完成したショートカットのレシピを以下にペタッと貼り付けておきます。冒頭で述べた(1)連続検索の機能と、(2)検索履歴の機能まで実装し終えたものです。

レシピ

画像1


今回は、このショートカットに色々とアクションを付け足して、検索強化の機能を実装していきたいと思います。


2. 辞書にのっていない単語

前回(PART2)までで作成した辞書ショートカットは、内蔵辞書に載っていない単語を検索した場合、その時点でショートカットが終了してしまうという問題があります。

"hoge"は辞書にのっていない

画像2


また、入力は厳密に行われなければ辞書の検索に引っかかってくれないため、例えば

「怠け者の足から鳥が起つ」は検索に引っかかる
「怠け者の足から鳥が立つ」は検索に引っかからない

というように、少しの入力の違いだけで辞書の検索に失敗してしまうといった問題がけっこう起こります。(入っている辞書の種類にもよると思うが、そこら辺は省略)


辞書での検索に失敗すると、ショートカットが終了してしまうというのも問題です。もう一回起動し直して、入力ミス等に気をつけながら入力するのは面倒ですし、何よりどこが間違っているのかの判断は難しいといった問題もあります。そんなことにいちいち気を配りながら使いたくはありません。

じゃあどうするかということですが、辞書での検索に失敗したなら、辞書は使わずにGoogle検索してしまえば良いのです。

いやいや、それじゃあもう一回入力し直さなきゃいけないし...何よりGoogleを開かなきゃいけないじゃん。だったらショートカットなんて最初っから使わずに、最初からGoogle検索した方が早いじゃん。

...となりそうですが、そんな面倒なことはしません。ここでは、クリップボードとif文を上手く使うことで、ショートカットだけで辞書検索とGoogle検索を切り替えられるようにショートカットを編集していきます。


3. アクションの追加その1

では、ショートカットの編集に入っていきます。

ショートカットが終了してしまうと、入力した単語の情報が失われてしまいます。

これでは面倒(もう一回入力しなおさないといけない)なため、辞書での検索の前に、入力した単語をクリップボードにコピーするようにしてしてあげます。こうすることで、ショートカットが終了した後でも、しばらくは入力した単語の情報を保持することができるようになります。

入力をクリップボードにコピー

画像3

※コピーするのは、改行を除いたあとの入力である。(アップデートされたテキスト)


あとは、ショートカットの処理冒頭でクリップボードになんらかの値が入っているかどうかを調べ、入っているのであれば、クリップボードの内容でGoogle検索をするという処理を追加してやります。

まず、最後にif文を追加し、クリップボードの中身を調べるように条件部分を変更します。

最後にif文を追加

画像4


そして、一応クリップボードの中身からも改行を除いておき(1)、それをGoogle検索のURLに含めてSafariで検索するようにします(2)

if文の中身を追加

画像5


ここまで完成したならば、if文を処理のはじめに移動させてやります。中身も一緒に移動してくれるはずです。

if文を最初に移動させる

画像6


これで、辞書に載っていない単語をGoogle検索することが一応できるようになりました。(まだ完成ではありません)

試しに、さっきの続きからやってみます。さきほどと同じように"hoge"と入力すると、当然"hoge"は辞書に載っていない単語ですので、ショートカットは終了してしまいます。

"hoge"はのっていない(再掲)

画像7


ショートカットが終了したところで、もう一回ショートカットを起動し直します。すると、Google検索が行われ、以下のように"hoge"の意味が表示されます。

"hoge"とは?(Google先生)

画像8


これで、辞書に載っていない単語は、Google検索に任せることができるようになりました。しかし、これで終わりではありません。

これだと、辞書の検索に成功した場合にも、Google検索が行われてしまいます。なので、辞書の検索に成功した場合には、クリップボードの中身を空にするようにショートカットに変更を加えます。

検索成功時は、クリップボードを空に

画像9


これで、辞書の検索に成功した場合は、クリップボードの中身が空になるので、Google検索が無駄に行われてしまう問題を防ぐことができます。

とりあえず、処理の流れの制御は、これでOKそうです。


4. アクションの追加その2

検索の強化ができたところで、さらなる問題が発生します。Google検索した場合、履歴がメモに残ってくれないということです。

履歴を残すには、PART2でやったように、特定のメモに検索した単語を書き込むという処理を加えれば良いのですが、すでにある"scdic_d_his"メモに書き込むようにしてしまうと、辞書での履歴とGoogleでの履歴がごちゃ混ぜになってしまいます。

なので、新たにGoogle検索の履歴を残す用のメモを作成し、そこに書き込むことにします。名前は、Googleのgをとってきて

scdic_g_his

とします。

※d(dictionary)→g(google)


名前を決めたら、PART2と同じ様にして、適当なフォルダに"scdic_g_his"メモを作成します。そして、ショートカットに変更を加えます。ここら辺の手順についてはPART2とほぼ同じなので、省略し、完成したレシピを以下にペタッと貼り付けておきます。長いですけど

レシピ(完成形)

画像10


これで、全ての作業が完了しました。


5. クリップボードの制御

今回作成したショートカットは、クリップボードの中身のある無しが処理の流れに影響を及ぼします。

なので、クリップボードの中身をすぐに空っぽにできるショートカットを用意しておくと、便利です。

ギャラリーに良さそうなのがあったので、以下にリンクを貼っておきます。


6. まとめ

今回は、ショートカットで辞書Appもどきを作ってみました。(完成しました)

なお、履歴メモですが、メモの名前に
"scdic_d_his"や、"scdic_g_his"の文字列が含まれてさえいればメモ検索に引っかかってくれるため、例えば

scdic_d_his1
scdic_d_his2
scdic_d_his3
...

のように、どんどんメモを増やしていくことが可能です。メモを増やした場合は、変更日が最新のものに書き込みが行われます。

使っているうちに、履歴メモの行数はどんどん増えていってしまうと思うため、適当なタイミングでメモを増やしてあげることをオススメします。

このようにメモとして履歴を残しておくメリットですが、例えば

単語帳ショートカットを作成するときに、メモから読み込むようにする

などとすれば、勝手に成長する単語帳を作成することが可能になったりします。(メモを読み込む際に、少し加工してやる必要はありますが)

ちなみに、私は、メモから読み込むランダム単語botなんてのを作って、遊んだりしています。ショートカットを起動すると、履歴メモを読み込み、ランダムに1つ単語を引っ張ってきて、Twitterにコメント付きで投稿できるというものです。以下、実際の呟き


まあ色々遊べると思います。では今回はこの辺で

では〜

この記事が気に入ったらサポートをしてみませんか?