Dictionary.app で使える辞書を作って Alfred で活用する
Dictionary.app も Alfred も別に目新しいものじゃないけど、用途によっては組み合わせるとすごく便利だと思いました。
Dictionary Development Kit
Mac 標準の Dictionary.app で利用できる辞書は、Dictionary Development Kit を利用して作ります。
Dictionary Development Kit は Apple からダウンロードします。Apple の Developer アカウントが必要です。
https://developer.apple.com/download/more/ から Auxiliary Tools for Xcode 7
をダウンロードして、dmg ファイルをマウントして、中身の Dictionary Development Kit
ディレクトリを適当なところにコピーしてください。
あとは、project_template
ディレクトリを適当な名前でコピーして辞書を作っていきます。
辞書を作る
さくっとやっちゃいましょう。
MyDictionary.xml
辞書本体です。Dictionary Development Kit 内のドキュメントに詳しい仕様が書いてありますが、読むのが面倒な場合はこのファイルや、Dictionary Development Kit に同梱されているサンプルを見ると早いと思います。
とりあえず、項目名が hoge
, 中身が fuga
みたいな項目が1つだけ含まれてる辞書ファイルの中身はこんな感じです。
<?xml version="1.0" encoding="UTF-8"?> <d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng"> <d:entry id="hoge" d:title="hoge"> <d:index d:value="hoge" d:title="hoge" /> <div>fuga</div> </d:entry> </d:dictionary>
<d:entry>
を増やしていけば項目が増えていきます。
MyDictionary.css
Dictionary.app でこの辞書の項目を見たときに適用される CSS です。Alfred のサジェスト項目に表示させるときには特に意味は無いのでぼくはいじってません。
MyInfo.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"> <dict> <key>CFBundleDevelopmentRegion</key> <string>Japanese</string> <key>CFBundleIdentifier</key> <string>com.example.hogedictionary</string> <key>CFBundleName</key> <string>Hoge Dictionary</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>DCSDictionaryCopyright</key> <string>Write your copyright here</string> <key>DCSDictionaryManufacturerName</key> <string>Write your manufacturer name here</string> </dict> </plist>
Makefile
DICT_NAME
を辞書名に、DICT_BUILD_TOOL_DIR
を Dictionary Development Kit を置いたディレクトリに書き換えてください。
MyDictionary.xml
, MyDictionary.css
, MyInfo.plist
の名前を変更した場合はその記述も変更してください。
辞書を作ってインストール
$ make && make install
これがエラー無く終われば、Dictionary.app の Preferences から、今回作った辞書が選択できるようになっているかと思いますので、有効にしてください。Alfred で利用する場合は、ドラッグアンドドロップで一番上とかそのあたりに移動させて優先度を上げると、Alfred でサジェストされやすくなるのでおすすめです。
活用例
自分はマイルを貯めるのが好きないわゆるマイラーで、いろいろ情報収集してると空港コードとか航空会社の2レターコードとかに出くわす場面が多いです。いちいちググるのもかったるくなってきたので、この方法で辞書を作って Alfred から検索できるようにしました。
辞書検索はデフォルトの define
から d
に変更しています。