
沖縄の住所や名前が難しすぎて辛い 「iPhoneのカスタムユーザ辞書を一括編集する方法」
沖縄に移住して困ったのは、ご当地地名がとても多いこと。
ここでクイズ。これは何て読むでしょう?
「西武門」「金武町」「奥武島」
答えは最後に
仕事柄お客様の名前などは、通常変換で表示されないものは全部カスタム辞書に追加していたので、追加しようとしたところで、ん?一括登録ってどうするの?という疑問にぶつかりました。
通常iPhoneの追加だと

こんな感じでユーザ辞書を開いて追加するのですが、ユーザ辞書の中に一括登録の項目が存在しません。

右上の+ボタンを押しても1つしか登録できないし、僕が追加したい地名は2000個、この方法で追加していくと同じことを2000回繰り返すことになってしまう。いくら時間があってもそんなのは辛すぎる。ということで調べた結果、一定の条件で一括登録ができることがわかりました。
Macを持っている。(現在バージョン11.5.2を使用)
同じApple I DをMacとiPhoneで共有している
この条件を満たすことで、一括登録をすることができます。
それではここから、一括登録の手順です。
1、Macで一括登録を行うためのファイルの作成
2、Macで一括登録
3、Macで登録したユーザ辞書をiCloudを通じてiPhoneと同期する
1、Macで一括登録を行うためのファイルの作成
システム環境設定→キーボードを選択

ユーザ辞書を選択し、command+aで全部を選択

選択した部分をドラッグ&ドロップすると「ユーザ辞書.plist」が作られる

ユーザ辞書.plistを編集する。右クリックしてテキストエディットで開く。

開くと、以下のようなxmlのファイルが表示されます。濃い色で表示されている6行が1つの単語のセットになっていて、新しく追加したい単語と読みのセットを作って</dict>の後に順に追加して、一括登録したい.plistを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>phrase</key>
<string>東里</string>
<key>shortcut</key>
<string>あいざと</string>
</dict>
<dict>
<key>phrase</key>
<string>愛地</string>
<key>shortcut</key>
<string>あいち</string>
</dict>
</array>
</plist>
さて、もし単語リストがあって、それを上記のようなxmlのフォーマットに変換するのはどうすればいいでしょうか?スクリプトで変換する。表計算ソフトを使って作成する。色々な方法があります。僕の場合は、Macで無料で使えるnumbersでデータを加工して、それをテキストにコピペしてxmlのフォーマットに書き換えました。因みに、ここで作成したxmlフォーマットの.plistファイルを戻す際に、重複があった場合はどうなるか?単語と読みが完全に重複したものは1つしか登録されませんので、安心してください。読みが同じで追加したい単語が異なる場合は、それぞれが登録され、読みが同じ状態になります。
2021年9月11日時点での僕の作ったplistを共有しておきます。自己責任で使ってくださいませ。僕のファイルをドラッグ&ドロップする前に、ご自身のユーザ辞書を前述の方法で書き出しておけば、万一何かあった場合にバックアップになります。
2、Macで一括登録
作成したplistをドラッグ&ドロップすることで、一括登録がされます。

3、Macで登録したユーザ辞書をiCloudを通じてiPhoneと同期する
システム環境設定 > Apple IDを選択

連絡先にチェックが入っていれば、数秒で同期され、iPhoneにも自動的に同じ内容が一括登録されます。

初めてnoteで技術文書を書いてみたけど、もう少し自由にレイアウトできると描きやすいかなぁ。良い勉強になりました。
答え合わせ
「西武門」にしんじょう
「金武町」きんちょう
「奥武島」おうじま