画像ファイルの準備

各 Wiki サイトが公開しているダンプファイルをダウンロードするか、WikixWikiteam 等のツールを使用して取得します。Uncyclopedia は https://download.uncyc.org からダウンロードが可能です。ja-images.zip が日本語版の画像データです。一方、Wikimedia 財団は画像ダンプを公開しておらず、クローラを使った収集も許可していないため作成困難です。

Wikix は WSL でも、apt-cygapt に、openssl-devellibssl-dev に置き換えれば Cygwin と同じ方法で導入できます。Wikiteam を使う場合は Python 2 が必要です。

このページでは、画像が保存されているディレクトリを IMAGES と表現します。コマンド等は環境に合わせて置き換えてください。

JPEG 形式に変換

XTBook は JPEG 画像のみに対応するため、全ての画像データを JPEG 形式に変換する必要があります。このとき、拡張子を含めた元のファイル名を変えてはいけません。また、画像が幾つかのサブフォルダに分かれて保存されている場合は全て IMAGES フォルダへ移動してください。

例:
 AAA.jpg → AAA.jpg.jpg
 BBB.png → BBB.png.jpg
 CCC.gif → CCC.gif.jpg
 DDD.svg → DDD.svg.jpg

ここでは Image Magick を使用して変換します。インストールされていない場合はインストールしてください。PC の性能や Wiki の規模によりますが、変換には数十分から数時間かかります。以下のコマンドでは、形式変換に加えてファイルサイズ削減のために 800x480 ピクセル以下への縮小も行います。

  1. mkdir resized
  2. cd IMAGES
  3. find . -type f -exec basename {} \; -exec convert {} -verbose -quality 80 -resize 800x480\> ../resized/{}.jpg \;

Image Complex 形式に変換

変換は resized フォルダ内で行います。ここでは MkXTBWikiplexus の build.unix フォルダを BUILD と表現します。

  1. cd resized
  2. find . -name "*.jpg" | BUILD/MkImageComplex-bin -o "output name"

"output name" は出力するフォルダの名前を指定します。記事を変換する場合とほとんど同じです。

Wiki名img-変換日.xtbdict
Wiki名は "言語 + Wiki 省略名" となります。
例えば、Wikipedia 日本語版は jawiki、Uncyclopedia 英語版は enunwiki、Wiktionary 日本語版は jawiktionary となります。
変換日は YYYYMMDD の 8 桁です。
例えば、2023 年 1 月 1 日は "20230101" となります。
よって 2023 年 1 月 1 日の Wikipedia 日本語版画像を変換した場合は "jawikiimg-20230101.xtbdict" と入力します。

つまり Wikipedia 日本語版の最新データを 2023 年 1 月 1 日に変換する場合は以下のようなコマンドとなります。
$ ./MkImageComplex-bin -o jawikiimg-20230101.xtbdict < list.txt

なお、このコマンドでは大量の出力が出ます。これを表示させないようにするには、コマンド末尾に

  1. 2> /dev/null
を追加します。ただし、これを使うとエラーも表示されなくなるので注意が必要です。

Info.plist ファイルの作成

最後に辞書ファイルの情報を記述したファイルを作成します。BOM なし UTF-8 を指定可能なテキストエディタを用意してください。最新の Windows 10/11 を使っているならメモ帳でも構いません。

例として、Wikipedia 日本語版画像で使用している Info.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>XTBDictionaryIdentifier</key>
	<string>com.nexhawks.XTBook.WikipediaImages.ja</string>
	<key>XTBDictionaryScheme</key>
	<string>jawikiimg</string>
	<key>XTBDictionaryTypeIdentifier</key>
	<string>com.nexhawks.XTBook.ImageComplex</string>
	<key>XTBImageComplexImagesFile</key>
	<string>Images</string>
	<key>XTBDictionaryDisplayName</key>
	<string>ウィキペディア 日本語版画像</string>
</dict>
</plist>

このうち、色がついている部分を辞書ごとに書き換えます。緑色の部分は Wikipedia 日本語版であれば com.nexhawks.XTBook.Wikipedia.ja、Uncyclopedia 日本語版は com.nexhawks.XTBook.Uncyclopedia.ja となります。水色の部分は output name を決めたときの Wiki 名 (jawiki や jawiktionary) となり、黄色の部分はそれに img を付け足したものとなります。赤色の部分は表示する辞書名を入力します。書き換えが完了したら文字コードを UTF-8 にして、ファイル名 Info.plist で Articles.db 等のファイルがあるフォルダに保存します。

これで辞書ファイルの作成は完了です。記事と同様に MkRax を用いて圧縮することも可能ですが、JPEG 自体が圧縮形式なため冗長なデータは既にほとんど取り除かれた状態であり、あまり効果がないので必要ありません。