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 に変更しています。

f:id:nash716:20160624210913p:plain

f:id:nash716:20160624210926p:plain