iPhoneでアプリ名とかの先頭を大文字で入力したかったので、ことえりにユーザ辞書をインポートした
やってみたかったこと
iOSの日本語入力の何がクソって色々クソだけど、一番クソなのは、日本語キーボードでの英字入力時、変換候補に「先頭大文字」がないということ。
日本語キーボードで先頭を大文字にし、それを変換履歴に残すには、以下の様な手順を踏まなければいけません。
- 日本語キーボードで文字列を入力
- 未変換文字を長押ししてカーソルを先頭文字の直後に移動
- 先頭文字を大文字で確定
- 以後を小文字で確定
気が狂いそうなほどめんどい! しかも、先に全部小文字で確定させちゃうと、それも候補に出てくるし!
だから、よく使うアプリ名とかを辞書登録したかった。もっと言うと、インクリメンタルに入力補完できるように、入力語も変換語も英語で登録したい。iPhoneは、英文字も入力語として辞書登録できますからね。もちろん、小説の人物名とかもザクザク入れたい。
やってみよう
参考
[箱] Mac OS X Mavericks ことえり 辞書のインポート・エクスポート 方法 | [箱]ものくろぼっくす
インポートファイルを作成
以下の手順で、ことえりにインポートする単語リストを作成します。
ことえりからエクスポートして「ひな形」を手に入れる
適当な単語をドラッグアンドドロップして「ユーザ辞書.plist」(か何か)を生成します。
テキストエディタに、タブ区切りでザクザクと入力する
以下のような感じ。
TextExpander Touch(タブ記号)textexpandertouch
TextExpander Touch(タブ記号)てきすとえきすぱんだーたっち
実際は、「よみ」アルファベット版まで入力するのがめんどくさいので、「単語」リストを元に「大文字→小文字変換」「スペースを置換で削除」してアルファベット「よみ」リストを生成しました。
miの正規表現置換で、インポート用フォーマットに変換
検索語
^(.*)\t(.*)$
置換語
<dict>
<key>phrase</key>
<string>$1</string>
<key>shortcut</key>
<string>$2</string>
<key>timestamp</key>
<integer>1397124347</integer>
</dict>
エクスポートファイルの該当部分に貼り付けて保存
変な拡張子だけど普通のテキストエディタで開けます。
<integer>~</integer>
の値が全部同じなのが怖いけど気にしない!
「システム環境設定>キーボード>ユーザ辞書」の単語リストにドラッグアンドドロップ
やったぜ。
でも、しばしば失敗する
再現条件が不明ですが、以下のような場合に失敗(システム環境設定の強制終了)しやすい気がする。
- 一度に登録する単語数が多い場合(10以上?)
- 「単語」にスペースを含む場合?
まあ、とりあえず成功しました。ろくにショートカットも利かないシステム環境設定でいちいち打つよりは楽なはず。
余談1:追加辞書をインポートしたかった件
システム環境設定 >> キーボード >> 入力ソースの追加辞書:にドラッグ&ドロップすると、辞書に変換され、追加された。
Mavericksのことえりの仕組みを探ってみる - ザリガニが見ていた...。
えっ!!??
iPhone/iPadのユーザー辞書をラクに充実させる手順:OS X Mavericksのユーザー辞書機能を使う : ライフハッカー[日本版]
んんん〜〜〜〜〜???
とりあえずCSV形式の.txtファイル作ってインポートしてみましたが、そもそも追加辞書がことえりの変換にさえ反映されませんでした。
変換された辞書の実体ファイルは3バイトとかだし、再度エクスポートしてもなんも入ってないから、そもそもエラーログ吐いてるし、明らかに失敗してるよ。
なんでさ。
余談2:発端
TextExpander Touchも入れてみたけど、iPhoneではスニペット入力できない場面のほうが多いんだよなあ。
Dash(docs & snippets)も入れてみたけど、そんなにコードとか書かない……まあ、メールアドレスの入力は辞書変換より楽かも。
とりあえず、Google日本語入力のユーザ辞書チェックしてみますか……ややっ
Mavericksにアップデートしたら、iPhoneの辞書に入れた単語がGoogle日本語入力に登録されてる!?
えっ、同期すんの? マジで?
→するわけなかったーーーー
とりあえず、Google日本語入力にも(「よみ」がひらがなのやつだけ)追加したよ……
Google日本語入力とことえりでは、インポートファイルにおける、「単語」と「読み」の順序が逆なので注意しましょう。
なぜiPhoneのユーザ辞書がGoogle日本語入力に入ったのだろう……
まったくわからんです。カタカナの人名とか、絶対にMacに入れない単語も入ってたから、「実はMacにも入れてただけ」ってオチはない……はず。
考えられるのは、Mavericksへのアップデート時(元がSnow Leopardなので、MacのiCloud同期が有効になったタイミングでもある)にだけ、「Macのユーザ辞書からGoogle日本語入力へのインポート」が行われた……とか?
Google日本語入力をアンインストール+インストールしてみればなにかわかるかもしれませんが、もうそんな気力ありません……。