|
看到 kenjilee 大大發表的文章後,
http://www.mobile01.com/topicdet ... mp;t=111059&p=1
發現 EBPocket 果然個好東西。
在找尋相關資料時,看到下面的網站
http://www.interq.or.jp/japan/s-imai/english/ebpocket.html
提到可以用 squeeze/ebzip 將 EPWING 格式的辭書大幅瘦身(日本人稱輕量化)。
花了一些功夫試行後,成功把廣辭苑第五版從 389MB 瘦身成 31MB。也許有人看完
後會覺得這麼大幅度瘦身的代價是有些多媒體資料或不常用的索引被刪除掉了。但
是對大部份的人來說,也許刪掉這些不常用的資料會比換購大容量記憶卡實惠多了。
見仁見智。
請注意,必須先有 EPWING 格式的辭書才能進行以下步驟。如果沒有的話,請自行購
買或到網上以 EPWING 為關鍵字查詢。
[下載所需程式]
我們需要的程式有以下四個
catdump - 做 catalog 的 dump/undump
bookinfo - 顯示辭書內有哪些構成要素(即包含哪些索引/多媒體內容)
squeeze - 移除不需要的構成要素以輕量化
ebzip - 壓縮辭書
前三個屬於 ebutils,請到這裡下載。
http://ebsnap.lkj.jp/ebu-w32.lzh
解開後便可使用。
第四個屬於 EB Library 4.2.1,請到這裡下載。
ftp://ftp.sra.co.jp/pub/misc/eb/eb-4.2.1-win32.exe
這支程式安裝後需到 C:\Program Files\EB Library\bin 下面去找 ebzip.exe。
由於它不是 Unicode 程式,在安裝時會遇到有亂碼的問題,請用 Microsoft
AppLocale 去執行即可。
[建立所需的 catalog]
catdump 這支 tool 可將 EPWING/電子 中的 catalog 寫成文字檔,讓使用者
在編輯後(也就是加入或刪除辭書後),再寫回 catalog 格式,製作出自己所需要的
catalog。
以下以廣辭苑第五版為範例說明如何在 Windows 上使用。其原文可參照下列網址
http://hp.vector.co.jp/authors/V ... ix-dic3.html#c3s1s3
步驟:
1. 將 catalogs 內容寫成文字檔 catalogs.txt
> cd c:\dict\kojien5
> catdump catalogs > catalogs.txt
廣辭苑第五版的內容除了辭書本體外,還包含「付屬資料」及「書籍選擇」
兩本書,總共三本。故寫出來的 catalogs.txt 的內容如下
; 電子/EPWING 內容 (generated by catdump v1.2pre)
[Catalog]
FileName = catalogs
Type = EPWING5
Books = 3
BookSelect = 3
Reserved = 00000000000000000000
[Book]
BookType = 0005 (00:國語辭典, 05:EPWING5)
Title = "廣辭苑第五版"
Directory = "KOJIEN"
InfoBlock = 0001
ZenGaiji = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1 = 062B0000
BookFile = "HONMON2"
Padding2 = 0000000000010200
GraphicsFile= "HONMONG"
Reserved2 = 00000011
SoundFile = "HONMONS"
[Book]
BookType = 8005 (80:不明, 05:EPWING5)
Title = "付屬資料"
Directory = "FUROKU"
InfoBlock = 0001
ZenGaiji = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1 = 000B0000
BookFile = "HONMON"
[Book]
BookType = F004 (F0:, 04:EPWING4)
Title = "書籍選擇"
Directory = "SCREEN"
Reserved1 = 01100000
StreamFile = "SELECT"
由於輸出的文字檔為 Shift-JIS 編碼方式,用一般 text editor 可能無法觀看。
我用的是比較笨的方法:
- 用 UltraEdit 編輯
- 用 IE/FireFox 去開該文字檔,並將編碼方式改為 Shift-JIS 看修改後結果。
2. 刪除不需要的書
如果我們只想要辭書本體的話,可以將「付屬資料」及「書籍選擇」這兩本書刪除。
由於刪除後只剩下一本書,要記得把 [Catalog] 這一區的 Books 改為 1 並刪掉
BookSelect 這一行。最後結果會如下所示。
; 電子/EPWING 內容 (generated by catdump v1.2pre)
[Catalog]
FileName = catalogs
Type = EPWING5
Books = 1
Reserved = 00000000000000000000
[Book]
BookType = 0005 (00:國語辭典, 05:EPWING5)
Title = "廣辭苑第五版"
Directory = "KOJIEN"
InfoBlock = 0001
ZenGaiji = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1 = 062B0000
BookFile = "HONMON2"
Padding2 = 0000000000010200
GraphicsFile= "HONMONG"
Reserved2 = 00000011
SoundFile = "HONMONS"
3. 將編輯後的 catalog.txt 轉回 catalog
> catdump -u catalogs.txt catalogs
注意,此步驟會將原始的 catalogs 覆蓋掉。
用以上的方法,可將一個 catalog 中的多本書刪減為一本書,達到減少辭書大小目的。
當然,類似的方法也可以將在不同 catalog 中的多本書合併為一本書。不過 EPWING 格式
不可與 電子 格式合併在一起。此外,在合併時若每本 EPWING 的版本 (也就是
[Catalog] 這一區中的 Type 值) 不一樣的話,要記得把 Type 設為最大版本的值。
[辭書的輕量化及壓縮]
電子/EPWING 的辭書內常包含
- 各式各樣的索引方式
- 多媒體內容
若將不需要的部份拿掉的話,便可達到輕量化的目的。以下將以廣辭苑第五版為範例,
做下列的輕量化:
- 除了「前方一致」及「後方一致」外,刪除其他所有索引
- 刪除多媒體資料
- 外字資料除了大小為 16 點的以外,其餘全部刪除。
- 將本文與外字檔案以 ebzip 壓縮。
1. 編輯 catalog
在此我們將以 EPWING V1 方式處理 catalog。請將上一節的 catalogs.txt 從
V6 格式修改為以下 V1 格式。
; 電子/EPWING 內容 (generated by catdump v1.2pre)
[Catalog]
Type = EPWING1
Books = 1
[Book]
BookType = 0001 (00:國語辭典, 01:EPWING1)
Title = "廣辭苑第五版"
Directory = "KOJIEN"
InfoBlock = 0001
ZenGaiji = "GA16FULL"
HanGaiji = "GA16HALF"
該修改的地方大致是
- [Catalog] 的 Type 改為 EPWING1。FileName, Reserverd 都刪掉。
- [Book] 的 BookType 改為 0001
- [Book] 的 ZenGaiji 及 HanGaiji (全形及半形外字) 各只留下一個 16 點大小的即可。
- [Book] 的 HanGaiji 以下內容全部刪除
編輯結束後再轉回 catalogs
> catdump -u catalogs.txt catalogs
PS. 為什麼要用 V1 格式處理原文作者有說明,不過我看不是很懂
2. 刪除不需要的檔案
把我們不需要的資料檔用檔案總管刪除,包括
data/Honmong -> 圖形檔
data/Honmons -> 聲音檔
Gaiji/GA24xxx -> 24 點外字
Gaiji/GA30xxx -> 30 點外字
Gaiji/GA48xxx -> 48 點外字
Movie -> 所有動畫檔
刪完後,我的 Kojien 目錄下從 389MB 剩 139MB。由此可看出,輕量化很重要的一
步就是將不需要的圖形、文字、動畫等檔案刪除。
3. 查看書籍有哪些構成要素
接下來用 bookinfo 觀看辭書本體內有哪些資訊,包括建了什麼索引、什麼圖檔、
聲音、著作權表示等。
> cd data
> bookinfo honmon2 > bookinfo.txt
由於 bookinfo.txt 為 Shift-JIS,還是用 IE/FireFox 把編碼改成 Shift-JIS 來
看裡面的內容。其結果大致如以下所示
==========================================================================
; 電子/EPWING 書籍管理情報 (generated by bookinfo v1.2pre)
對象書籍 = honmon2
情報所在 = 1
書籍構成要素數 = 28
予備領域1(書籍種別/保護情報) = 0090H
書籍種別: 國語辭典
保護情報: 表示許可, 印刷許可, 引用許可, 圖版引用許可,
圖版引用許可, 動畫引用禁止, 大量引用許可
INDEX情報取扱法 = 04H (不明)
ID 名稱 先頭 INDEX情報 予備3/4
*00 本文 2 21421 kasctygdh 00/0000
*90 前方一致 21423 6729 kasctygdh 00/0000
*04 前方一致見出 28152 54 kasctygdh 00/0000
*91 前方一致表記形 28206 3119 .as...... 00/0000
*05 前方一致表記形見出 31325 66 kasctygdh 00/0000
*70 後方一致 31391 6729 kasctygdh 00/0000
*06 後方一致見出 38120 54 kasctygdh 00/0000
*71 後方一致表記形 38174 3119 .as...... 00/0000
*07 後方一致表記形見出 41293 66 kasctygdh 00/0000
80 條件檢索 41359 47275 .as...... 00/0000
03 條件檢索見出 88634 903 kasctygdh 00/0000
81 檢索 89537 536 .as...... 00/0000
FF 複合檢索 *** 9225 kasctygdh 00/0000
FF 複合檢索 *** 5904 kasctygdh 00/0000
FF 複合檢索 *** 3707 kasctygdh 00/0000
FF 複合檢索 *** 2485 kasctygdh 00/0000
FF 複合檢索 *** 3051 kasctygdh 00/0000
12 禁則文字 104144 1 kasctygdh 00/0000
13 他 104145 1 kasctygdh 00/0000
14 他 104146 1 kasctygdh 00/0000
15 他 104147 1 kasctygdh 00/0000
16 複合檢索見出 104148 1 kasctygdh 00/0000
E0 色見本 104149 266 kasctygdh 00/0000
10 檢索 (畫像) 104415 384 kasctygdh 00/0000
D0 圖版 104799 2652 kasctygdh 00/0000
*02 著作權表示 107451 1 kasctygdh 00/0000
D2 圖版 1 103973 kasctygdh 00/0000
D8 PCM音聲 1 34099 kasctygdh 00/0000
表示方法初期值情報:
有效無效 = 01H (初期值情報有效)
一覽表表示 = 01H (一覽表表示、選擇指示受表示)
本文表示法 = 01H (檢索結果先頭本文表示)
書籍 = 143MB ----------> 書籍所有原始資料為 143MB
(壓縮前 = 210MB) --> 書籍所有原始資料壓縮前為 210MB
部分 = 81MB ----------> 有 * 部份為 81MB。這些資料是 squeeze
這支程式預設會留下來的部份。
==========================================================================
4. 刪除不需要的構成要素
用 squeeze 預設值將 bookinfo 中有標記 * 的部份留下來。squeeze 後原始的
honmon2 就不需要了,可以刪除。
> cd C:\dict\kojien5\KOJIEN\DATA
> squeeze Honmon2 Honmon
> del Honmon2
這部份大概會花個一、兩分鐘來轉。轉完後,我的 Honmon 大概剩下 81MB。
PS. squeeze 的預設值是只留本文、menu、著作權表示、所有前方/後方的索引及見出
語。其餘部份全部刪除。
PS. 若不想使用 squeeze 的預設值的話,可以自行指定要刪除的構成要素 ID。指定的
方式是在 --delete 後用逗號將所有要刪除的 ID 接在一起。所以 squeeze 的預
設動作(也就是刪除 bookinfo 中沒有 * 部份的 ID) 相當於
squeeze --delete=03,0a-6f,73-8f,93-ef,f9-ff honmon2 honmon
5. 壓縮辭書資料
最後使用 ebzip 壓縮辭書資料。在這裡我們會建一個新的 kojien5.new 存放壓縮後的
新辭書。如果原有的辭書(也就是 kojien5 目錄)不再需要的話,便可刪除。
> cd c:\dict
> md kojien5.new
> cd kojien5.new
> ebzip --level=5 ..\kojien5
壓縮完後的辭書剩下 30MB 左右,大部人的記憶卡應該都放得下吧。到了這裡很慶幸
EBPocket 支援 ebzip 格式的辭書。以下是轉換後剩下的資料檔。
Directory of C:\dict\kojien5.new
2005/11/27 ?? 01:01 2,048 catalogs
Directory of C:\dict\kojien5.new\KOJIEN\DATA
2005/11/27 ?? 01:06 32,041,639 Honmon.ebz
Directory of C:\dict\kojien5.new\KOJIEN\GAIJI
1999/05/18 ?? 01:20 120,037 GA16FULL.ebz
1999/05/18 ?? 01:20 1,408 GA16HALF.ebz
2 File(s) 121,445 bytes
Total Files Listed:
4 File(s) 32,165,132 bytes |
|