2013年10月26日土曜日

Mac OS X Mavericksのことえりユーザー辞書はどこにあるのか?

Mac OS X Mavericksのことえりユーザー辞書は、インプットメソッドメニューの「ユーザー辞書を編集」からすぐに編集できるようになったのは良かった。


そして、ユーザー辞書を編集していてふと気が付いた。ひょっとして、エクスポートもインポートも出来なくなったんじゃないか?

どうやら同じように気が付いた方がいらしたようだ。

[箱] Mavericks ことえりのユーザ辞書はインポートもエクスボートもできない? | [箱]ものくろぼっくす

さすがにユーザー辞書をディスクに書き込んでいないわけはないだろう?とは思う。なら、そのファイルさえあれば何とかなるのでは?しかし、そのファイルは一体どこにあるのか?

ユーザー辞書を適当に編集してすぐ、ターミナルにてこのようなコマンドを打ち込んで自分のホームディレクトリ内で1分以内に編集されたファイルを探してみた。

$ find ~/ -type f -mmin -1

すると、どうやらこれらのファイルが関係ありそうだ。

~/Library/Application Support/Ubiquity/peer-D3C0E9E9-2D0B-9EE1-0915-ACF2A68E32A0-v24/.cs/ChunkStoreDatabase-wal
~/Library/Application Support/Ubiquity/peer-D3C0E9E9-2D0B-9EE1-0915-ACF2A68E32A0-v24/item-info.db-wal
~/Library/Dictionaries/CoreDataUbiquitySupport/jun~AB4DCBC3-2DE5-5D80-AB2E-C0B70E949108/UserDictionary/E00AF83B-859A-448C-B764-ED48D8FD8540/store/UserDictionary.db
~/Library/Logs/Ubiquity/ubiquity-digest-2013-10-24-180210+0900.log
~/Library/Logs/Ubiquity/ubiquity-mmcs-2013-10-24-185605+0900.log

この中で一番怪しそうなのは「~/Library/Dictionaries/CoreDataUbiquitySupport/jun~AB4DCBC3-2DE5-5D80-AB2E-C0B70E949108/UserDictionary/E00AF83B-859A-448C-B764-ED48D8FD8540/store/UserDictionary.db」。

これをlessしてみると、どうやらSQLiteのデータベースファイル(バイナリ)であることが分かった。そこで、SQLiteのブラウザでこのファイルを読み込んでみた。

SQLite Database Browser プロジェクト日本語トップページ - SourceForge.JP

「Browse Data」タブで「ZUSERDICTIONARYENTRY」テーブルを見てみると、確かに登録した単語が!


ということは、このUserDictionary.dbをプログラムで解析してGoogle日本語入力などの他の辞書フォーマットに変換して書き出せば、少なくともエクスポートは出来るようになるだろう。

今日はここまで^^;

しかし、なんでユーザーがこんな面倒な事をしなくちゃなんないんだ?