問題の要約
iBooks 1.1にアップデート後、自分でCalibreなどで変換したePubファイルの単語を選択して辞書を呼び出すと「Dictionary not available for this language(この言語の辞書は利用できません)」というポップアップが出る場合があります。プロジェクト・グーテンベルクなどiBookstoreから配布されている一部のePubでは問題が起きず、自分で変換したファイルだけで発生するのが特徴です。
重要: これはiBooks側の辞書とePubの内部で宣言されている言語コードの不一致が原因であることが多いです。
原因の技術的説明
ePubファイルはZIPアーカイブです。その中にあるmetadataファイル(一般的にcontent.opf)に言語を示すタグがあります。多くの場合、dc:languageが「未定義」を表す値になっていると、iBooksは対応する辞書を決定できず「利用できない」と表示します。Calibreが変換時に言語タグに適切な値を書き込まないケースが報告されています。
たとえば問題のある値は:
この場合、UNDはUndefinedの意で、iBooksは辞書を持ちません。正しくは例えば英語なら次のようにします:
準備:注意点とバックアップ
- 元のePubを編集する前に必ずコピーを作ってバックアップしてください。iTunesやデバイス上の書籍は上書きで消える可能性があります。
- 編集後はiTunesまたはFinder経由で再同期してください。
- Windowsの場合は7-ZipやSigilを使うとGUIで操作できます。SigilはePub専用のエディタで、content.opfの編集が容易です。

Macでの手順(ターミナル使用)
以下は代表的な一連の流れです。ファイル名や内部パスはePubごとに異なるので、まずcontent.opfの正しいパスを確認します。
- ePub内のファイル一覧を確認してcontent.opfのパスを探す
unzip -l Book.epub | grep content.opf出力例に表示されたパス(例:OEBPS/content.opf)をメモします。
- content.opfだけを取り出す
unzip Book.epub OEBPS/content.opf- テキストエディタで開いてdc:languageタグを編集する。テキストエディタは空白を含むパスの場合は引用が必要ですが、ファイル名に空白がなければ引用は不要です。
open -e OEBPS/content.opfエディタで次のように編集します(例:未定義を英語に変更):
en - 変更を保存して、ePubに戻す
zip -u Book.epub OEBPS/content.opf- iTunesに再登録またはデバイスへ再同期
変更したePubをiTunesのライブラリに戻し、デバイスと同期して辞書が動作するか確認してください。

GUIでの手順(Windows / Mac)
- Sigilを使う: SigilでePubを開くとcontent.opfが表示されます。エディタ上でdc:languageを編集して保存すればOKです。
- Calibreでの対処: Calibreの「メタデータの編集」で言語フィールドを設定してから再変換すると正しく書き込まれる場合があります。ただしCalibreはバージョンや設定によって振る舞いが異なるため、変換後のePubを開いて実際にdc:languageが反映されているか確認してください。

いつこの方法が効かないか(反例)
- ePub内のdc:languageが正しく設定されているにもかかわらず辞書が使えない場合、iOS側の辞書そのものがインストールされていない、あるいはiBooksが別の言語判定ロジックを使っている可能性があります。
- コンテンツが複数言語で混在している場合、単一のdc:languageだけでは期待どおりに動かないことがあります。その場合は言語ごとに別ePub化するか、ePubの言語タグ付けをより詳細に行う必要があります。
代替アプローチと自動化のヒント
- 一括処理: 多数のePubを一括で直す必要がある場合、スクリプトでcontent.opfを抽出・置換・再格納することが可能です。作業前に必ずバックアップを取り、まずは1冊で動作確認してください。
- SigilやCalibreでの内部編集: GUIで見ると内部構造やパスが把握しやすく、誤ってmimetypeや他の必須ファイルを壊すリスクが低くなります。
- 専用ツール: epubcheckで整合性を確認すると、編集後のePubが標準に準拠しているかチェックできます。
簡易チェックリスト(役割別)
- 作業者(実行前):
- 元ePubのバックアップを作成した
- iTunesで該当ePubの実ファイル位置を確認した
- 作業者(編集後):
- content.opf内のdc:languageを変更した
- ePubを再圧縮または保存した
- epubcheckで検証した(任意だが推奨)
- テスター(デバイスで確認):
- iTunesに入れてデバイスへ同期した
- 問題の単語を選択して辞書が表示されることを確認した
受け入れ基準(チェック方法)
- 編集後、iBooksで単語を長押しまたはタップして辞書が正しく表示されること。
- epubcheckなどでエラーが出ないこと(重大なZIP/OPF構造エラーがない)。
ミニ手順書(SOP)
- ePubを選ぶ。バックアップを作る。
- content.opfのパスを確認する。
- content.opfを抽出してdc:languageを編集する。
- 保存してePubへ再格納する。
- epubcheckで検証、iTunesへ戻す。
- デバイスで辞書を確認。
リスクと緩和策
- ミスでePubを壊すリスク: 常にバックアップを取り、epubcheckで検出する。
- 言語コードの選択ミス: RFC 3066やISO言語コード表を参照して正しい2文字/3文字コードを使う(例:英語en、日本語ja)。
参考ツールと互換性メモ
- Mac: unzip, zip, TextEdit(open -e)で対応可能。
- Windows: 7-Zip、Sigil。
- GUI派: Sigilが最もePub編集に特化していて安全。
- Calibre: メタデータ編集で言語をセットしてから変換すれば改善する場合あり。ただし変換後にcontent.opfを確認すること。

よくある質問
Q: コンテンツが混在言語で辞書が動かない場合は?
A: ePub標準では文書全体の言語を示すdc:languageのほかに、各段落や要素にxml:lang属性で言語を付与できます。ただしiBooksがxml:langをどこまで辞書選定に利用するかは限界があるため、混在する場合は言語ごとに分冊するのが確実です。
Q: たくさんのePubを自動で修正できますか?
A: はい。スクリプトで一括処理できますが、必ずまず少数で検証してください。自動化では誤ったパスや名前の差異に注意が必要です。
まとめ
- 多くの場合、iBooksで辞書が使えない原因はePubのdc:languageが未定義になっていることです。
- content.opfを編集して正しい言語コードに変更すれば解決します。
- Macならターミナル、WindowsならSigilや7-Zipで作業可能です。
- 大量のファイルを扱う場合はCalibreのメタデータ編集やスクリプトによる一括処理を検討してください。
SNSシェア用文例(短): iBooks 1.1で辞書が使えないePubを直す簡単な方法。content.opfのdc:languageを正しく設定するだけで解決します。