ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

iBooks等のポップアップ辞書で使う辞書を選択可能にするDicSelector

      2016/03/16

iBooks、iWorkのポップアップ辞書機能概要と問題点

Appleの一部アプリケーションでは、文字選択後に利用できるメニューから辞書を引くことができます。

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インストール直後には存在せず、辞書を最初に使うときにダウンロードを促されるようになっています。

大辞泉、プログレッシブ英和・和英中辞典、類語例解辞典は日本語の単語を引くときにダウンロードを促されます。

辞書は全部で六つ。ディレクトリの名前から分かりますが、

  • 大辞泉
  • プログレッシブ英和・和英中辞典
  • 類語例解辞典
  • Apple 用語辞典
  • Oxford American Writer’s Thesaurus
  • New Oxford American Dictionary

以上の六つ。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

  • /Library/Dictionaries/New Oxford American Dictionary.dictionary/
  • /Library/Dictionaries/Oxford American Writer’s Thesaurus.dictionary/
  • /Library/Dictionaries/Apple Dictionary.dictionary/

■iWork

  • /Library/Dictionaries/New Oxford American Dictionary.dictionary/
  • /Library/Dictionaries/Oxford American Writer’s Thesaurus.dictionary/
  • /Library/Dictionaries/Apple Dictionary.dictionary/
  • /Library/Dictionaries/Shogakukan Daijisen.dictionary
  • /Library/Dictionaries/Shogakukan Progressive English-Japanese Japanese-English Dictionary.dictionary
  • /Library/Dictionaries/Shogakukan Ruigo Reikai Jiten.dictionary

デフォルトの状態では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」といいます。
インストールすると「設定→DicSelector」という項目が増えます。

ここから最優先で検索したい辞書を選択すると、ポップアップ辞書対応アプリケーションの次回起動時から反映されます。既に起動中である場合は、いったん終了させないと反映されません。

iBooks 1.1においては、日本語書籍と英語書籍で、使用する辞書を別に設定できます。

iBooks 1.0と、iWorkでは、「最優先の辞書(英語)」の設定を使用します。これらのアプリケーションにおいては「最優先の辞書(日本語)」の方は影響を与えません。

DicSelectorでプログレッシブ英和・和英中辞典、類語例解辞典を最優先の辞書に設定し、冒頭のスクリーンショット同様、iBooksで「Pooh」という単語を検索した結果。

ちなみに、この設定画面にある六つある辞書の並びが、DicSelector導入後のデフォルトの並びとなります。デフォルトでは三つの辞書しか登録されていなかったiBooks 1.0においても、この六つが登録されるようになります。

  • プログレッシブ英和・和英中辞典
  • 大辞泉
  • 類語例解辞典
  • New Oxford American Dictionary
  • Oxford American Writer’s Thesaurus
  • Apple 用語辞典

この並びを基本に、選択した辞書を最前列に移動させたものが実際の並びになります。

注意点

言語環境について

DefaultDictionaries.plistが存在するパスをアプリケーションバンドルの中にあるJapanese.lproj、ないしはja.lprojと仮定しているため、日本語環境以外では動作しません。
もし、設定された言語環境に応じた上記に相当するパスを簡単に割り出す方法をご存じの方がいたら教えてください。

iBooks 1.1においては、日本語環境以外でも動作します。

アプリケーション起動中の辞書変更について

アプリケーション起動後、最初にポップアップ辞書から検索をかけた時点で辞書のインデックスがメモリ上に確保される作りであるようです。従って、アプリケーションの起動中に辞書設定を変更しても、それが反映されることはありません。
Backgrounderでアプリケーションをバックグラウンド動作をさせているか、iOS 4.0を導入したiPhoneで使う場合は、いったん終了させないと変更が反映されないので、注意してください。

要望について

起動中の辞書切り替え、串刺し検索、そしてアプリケーションを選ばず辞書引きのメニューを表示させることなど、もっと使い勝手のいい辞書引き環境を希望されそうですが、僕がその要望に応じることはありません。

履歴

  • 0.2-3 2010.08.04 iPhone OS 3.2.1を対応OSに追加
  • 0.2-2 2010.07.17 iOS 4.0.1を対応OSに追加

動作環境

  • iPhone OS 3.2
  • iPhone OS 3.2.1
  • iOS 4.0
  • iOS 4.0.1

インストール

対応バージョンについて

iWork(Pages, Keynote, Numbers各バージョン1.1)
iBooks 1.0 / 1.1

で動作しています。

免責

無保証、無サポートです。
あなたの大事なiPad、データが破壊されるかもしれない。
それでもよければ使ってみてください。

インストール方法

インストールはいつものNew野良リポジトリ
「DicSelector」という名前で登録してあります。検索を。

 - iPad, iPhone, Jailbreak, ガジェット