iBooks等のポップアップ辞書で使う辞書を選択可能にするDicSelector
2016/03/16
価値ある情報をユーザー視点で発信するブログ
2016/03/16
もくじ
iBooks、iWork (Pages、Numbers、Keynote)にて、辞書引きができることを確認しています。
iBooksでは「辞書」から。
iWorkではメニュー階層が違って「その他…→定義…」というメニューから辞書引きができます。
iBooks、iWorkにてこの機能を使って英単語を調べると、英英辞書からの検索結果を返してくれるのですが、できれば英和を利用したい。 しかし、このポップアップ辞書機能に関係する設定項目が存在しないようです。これは何とかならないものでしょうか。(続きは[MORE]から)
調べてみると、ポップアップ辞書は、iPadではiPhone OS 3.2に標準搭載の辞書データを利用しているようです。現状のiPadのファイルシステム上では、以下のパスに辞書データが存在します。
/Library/Dictionaries/Apple Dictionary.dictionary/
/Library/Dictionaries/New Oxford American Dictionary.dictionary/
/Library/Dictionaries/Oxford American Writer’s Thesaurus.dictionary/
/Library/Dictionaries/Shogakukan Daijisen.dictionary/
/Library/Dictionaries/Shogakukan Progressive English-Japanese Japanese-English Dictionary.dictionary/
/Library/Dictionaries/Shogakukan Ruigo Reikai Jiten.dictionary/
ちなみに、iPhoneのiOS 4.0では、Apple Dictionaryを除き、iBooksのあるsandboxディレクトリにあります。
/var/mobile/Application/xxxxx/Library/Dictionaries/
そしてiBooksインストール直後には存在せず、辞書を最初に使うときにダウンロードを促されるようになっています。
大辞泉、プログレッシブ英和・和英中辞典、類語例解辞典は日本語の単語を引くときにダウンロードを促されます。
辞書は全部で六つ。ディレクトリの名前から分かりますが、
以上の六つ。Mac OS X LeopardからOSに標準搭載されている辞書と同じです。
そして、iBooks、iWork共に、アプリケーションのフォルダの中に、これらの辞書に関する設定ファイル、DefaultDictionaries.plist、もしくはBKDictionaryManager_LanguageToOrder.plistを見つけることができます(情報元 @hondamarboro さん [UPDATE3]iBooksのルックアップ辞書を英和・和英/国語辞典にする(iOS3.2)【JB必須】)。
現時点ではiBooks 1.1のみがBKDictionaryManager_LanguageToOrder.plistを利用しています。
DefaultDictionaries.plistは以下の位置にあります。
/var/mobile/Applications/xxxx/xxx.app/Japanese.lproj/DefaultDictionaries.plist
/var/mobile/Applications/xxxx/xxx.app/ja.lproj/DefaultDictionaries.plist
BKDictionaryManager_LanguageToOrder.plistは以下の位置にあります。
/var/mobile/Applications/xxxx/iBooks.app/BKDictionaryManager_LanguageToOrder.plist
DefaultDictionaries.plistの中を見てみると、どの辞書をどんな検索順序で検索するかを設定するらしき項目、DCSDefaultActiveDictionariesがあります。デフォルトの設定は以下のようになっています。
■iBooks 1.0
■iWork
デフォルトの状態ではOxford American Dictionaryが最優先、次いでOxford American Writer’s Thesaurusが検索されるようになっています。
問題なのは、iBooksの辞書リストには、New Oxford American Dictionary、Oxford American Writer’s Thesaurus、Apple 用語辞典しか入っていないこと。もう一つは、ポップアップ辞書の検索の動作です。
ポップアップ辞書は、リストの順序に準じて辞書を検索していくのですが、一度でもヒットした時点で検索をやめ、表示に移ります。後に続く辞書リストの中にヒットする項目があったとしても、それが検索結果に現れることはありません。
例えば、「Apple」という単語を検索したときのことを考えてみましょう。New Oxford American Dictionaryのほか、プログレッシブ英和・和英中辞典にもヒットすることが予想されます。でも実際は、最初に検索されるNew Oxford American Dictionary内でヒットした時点で検索は終了します。
New Oxford American Dictionaryが優先される限り、これではほとんどプログレッシブ英和・和英中辞典を利用することができません。
iBooks 1.1ではちょっと事情が変わり、BKDictionaryManager_LanguageToOrder.plistの中に「en」と「jp」という項目があり、その中に各辞書の持つidentifierがリストされています。英語書籍では「en」の中身の順序で検索され、日本語書籍の中では「jp」の中身の順序で検索されるようです。
さて、このちょっと残念なポップアップ辞書関係の事情ですが、辞書リストの内容と順序を勝手に書き換えてしまい、利用したい辞書をリストの最初に位置させると、思った辞書の中を確実に検索させることができるようになります。そして、どんな検索結果がほしいか、そのリクエストに応じて、どの辞書をリストの最初に置くかを都度変えられることが望ましいことになります。
そこで、その書き換えを動的に実行するユーティリティを作りました。「DicSelector」といいます。
インストールすると「設定→DicSelector」という項目が増えます。
ここから最優先で検索したい辞書を選択すると、ポップアップ辞書対応アプリケーションの次回起動時から反映されます。既に起動中である場合は、いったん終了させないと反映されません。
iBooks 1.1においては、日本語書籍と英語書籍で、使用する辞書を別に設定できます。
iBooks 1.0と、iWorkでは、「最優先の辞書(英語)」の設定を使用します。これらのアプリケーションにおいては「最優先の辞書(日本語)」の方は影響を与えません。
DicSelectorでプログレッシブ英和・和英中辞典、類語例解辞典を最優先の辞書に設定し、冒頭のスクリーンショット同様、iBooksで「Pooh」という単語を検索した結果。
ちなみに、この設定画面にある六つある辞書の並びが、DicSelector導入後のデフォルトの並びとなります。デフォルトでは三つの辞書しか登録されていなかったiBooks 1.0においても、この六つが登録されるようになります。
この並びを基本に、選択した辞書を最前列に移動させたものが実際の並びになります。
DefaultDictionaries.plistが存在するパスをアプリケーションバンドルの中にあるJapanese.lproj、ないしはja.lprojと仮定しているため、日本語環境以外では動作しません。
もし、設定された言語環境に応じた上記に相当するパスを簡単に割り出す方法をご存じの方がいたら教えてください。
iBooks 1.1においては、日本語環境以外でも動作します。
アプリケーション起動後、最初にポップアップ辞書から検索をかけた時点で辞書のインデックスがメモリ上に確保される作りであるようです。従って、アプリケーションの起動中に辞書設定を変更しても、それが反映されることはありません。
Backgrounderでアプリケーションをバックグラウンド動作をさせているか、iOS 4.0を導入したiPhoneで使う場合は、いったん終了させないと変更が反映されないので、注意してください。
起動中の辞書切り替え、串刺し検索、そしてアプリケーションを選ばず辞書引きのメニューを表示させることなど、もっと使い勝手のいい辞書引き環境を希望されそうですが、僕がその要望に応じることはありません。
iWork(Pages, Keynote, Numbers各バージョン1.1)
iBooks 1.0 / 1.1
で動作しています。
無保証、無サポートです。
あなたの大事なiPad、データが破壊されるかもしれない。
それでもよければ使ってみてください。
インストールはいつものNew野良リポジトリ。
「DicSelector」という名前で登録してあります。検索を。