ユーザー辞書が不意に使えなくなる(データが消える)なんてケースはかなり前からある問題です.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS14.4.1
スポンサーリンク
管理の難しさ
Macをお持ちであればバックアップも簡単ですが, 実際にはiPhone単体で利用している方が増えている昨今です, できるだけスマホだけで完結できれば御の字です.
既に電話帳に登録する手法が古くからありますがデメリットもあります.
スプレッドシートで代用
今回はユーザー辞書ほどのメリットはないですがバックアップと入力・管理に関して軍配の上がるスプレッドシート系アプリ, つまりNumbersやMicrosoft Excel, そしてGoogleスプレッドシートを利用します.
まずデータについてですが, 「よみ」と「単語」の組を1行ずつ次のルールに従って書きます.
- A列 → .
- B列 → よみ
- C列 → .:.
- D列 → 単語
- E列 → .,
A列は半角のドット, C列はそれぞれ半角のドットとコロン, ドット, E列はそれぞれ半角のドットとカンマで固定です.
固定列をこのようにする理由は最後に書きます.
ともかく上のルールにしたがってよみと単語を記録していきます.
固定列はどのアプリにもオートフィル(自動入力)機能があるのでこれを使いましょう.
パスワード管理もユーザー辞書のようなものです, 「単語」の部分をアカウントやパスワードに置き換えたと思えばよいでしょう.
画像の内容が辞書らしくないですが, これは以前使っていた新型コロナのデータの一部なんで気にしないでください.
レシピ
まず「テキスト」アクションを追加し, スプレッドシートに入力したデータをまるごとコピペします.
次にこの結果を「テキストを置き換え」で半角ドットを半角引用符"に置き換えます.
さらにこの結果を半角の中括弧で囲みます, 今回はわかりやすいよう「テキスト」アクションで行っています.
続けて上の結果から,}の部分を}に置き換えます.
加えてテキストにある改行とタブも削除します, これらの処理には正規表現を用います.
こうして得られたテキストを「入力から辞書を取得」で辞書にします.
さらにこの辞書のすべてのキーも取得しておきます.
「入力を要求」で検索したいキーワードの入力を求めます.
管理次第では並びがバラバラでしょうから, それを整理するのも兼ねて「ファイルにフィルタを適用」を使います.
対象とするファイルは上で取得した「すべてのキー」, フィルタとして上で入力させた指定入力を含む名前にします.
並び順序は「名前」で.
制限は程々にします, 実用を考えると5~6で十分だと思います.
「ファイルにフィルタを適用」の結果を使って「リストから選択」で一つを選択します.
選択したものは辞書化したユーザー辞書の「よみ」であり, したがって選択したものをキーとして「辞書から値を取得」で得られるのはその「単語」になります.
これで「よみ」と対応する「単語」が得られたので, クリップボードにコピーすればOKです.
今回はメニューを使ってコピーしない選択肢も与えましたが当然必須ではありません.
実行
実際に使ってみます.
「よみ」に当たるキーワードを入力します.
フィルタで「含む」にしたので一部だけでも大丈夫です.
その文字を含む「よみ」が並ぶので一つ選択します.
最後にクリップボードにコピーして終了します.
背面タップで使うのがよい?
普通に使うと, 明らかにこれまでのユーザー辞書の使い方とはかけ離れてしまいます.
なのでユーザー辞書らしく使うには背面タップにレシピを登録して使うことになると思います.
(蛇足)スプレッドシートで行うルールについて
準備の項で紹介したこのA,C,E列についてです.
やろうとしていることはなんとかして「よみ」と「単語」によるJSONを(入力・編集などに管理も含めて)やりやすいよう表現するか…でした.
JSONの基本構文は{"key1":"value1","key2":"value2",…}ですから, 前後の括弧は置いといて, 固定文字との兼ね合いから"と":"と",で分け, 最後に繋げ, 最後に中括弧で括ればよい…というわけです.
しかしこれだと末尾が…:"value",}となり, 末尾から2つ目の,が邪魔なのでこれを消す処理が必要になります.
…となると例えばA列は.でなく"であるべきなはずです, そうなっていないのは別アプリを介する弊害があったためです.
ちなみに「入力から辞書を取得」アクションでは, いくら全体がJSONの構文になっていたとしても, 間に改行やタブがあると正しく辞書にしてくれないようです.
レシピ内で改行とタブを消しているのはそのためです.
そもそも初めはスプレッドシートでなくメモ帳で管理することを考えていました.
スプレッドシート関係でもいいですがメモ帳なら手軽で, かつショートカットアクションで直接取り込めるからです.
しかしいざやってみるとちょっと都合よく行かなかったのでこうなりました.
しかしスプレッドシート系はこれらはこれらで直接取り込めない上, 引用符を使うとペースト後に何故か増えてしまったため, とりあえずドットで代用し, レシピ内で直せばよい…と考えたわけですね.
レシピを作るにあたってテキストファイルとしてiCloudに保存する選択肢ももちろんあるのですが, 前提としてユーザー辞書がトラブってる, つまり最悪iCloud自体に何らかの問題が生じている…という想定なので敢えて使っていません.
代わりにスプレッドシート系で管理し, 辞書を増やしたら都度レシピ先頭の「テキスト」を上書きコピペする必要が出てくるんですけどね.
そもそもユーザー辞書が改善・機能向上してくれれば済む話なんですけどね.
それこそ辞書登録もスプレッドシート(テキストでもいいですが)からインポートとエクスポートできるようにすればいいんですがそれどろこかバグすら修正されず今に至っています.
せめてショートカットに対応してほしいですね, それなら愚策とはいえ少なくとも「入れ直し」に苦労する手間がかなり減ります.
一つ一つ打ち直しなんて苦行ですよ.