stardict 有三種檔案: 1. a.ifo 2. a.idx 3. a.dict ifo 放這本字典的 information idx 放 wordlist 的 index dict放 wordlist 拉過來的 word data 如果你看到 idx.gz 或 dict.gz 那是因為 stardict 可以接受壓縮格式的關係。 .ifo 裡面放 StarDict's dict ifo file version=2.4.2 [options] 注意 version 的部份, 2.4.2 的 stardict 會去偵測 dict 是不是 for 2.4.2 的版本,如果不是就會拒絕存取。/* 按: 似乎到了 2.4.3 就不是這樣 */ 有用的選項表列如下: bookname= //required wordcount= //required idxfilesize= //required author= email= website= description= date= sametypesequence= //非常重要 wordcount 是每筆 word 記錄的總和,必須是正確的,不然會出問題。 說明中提到,為避免不斷的 realloc 降低軟體效能, 所以加入的 idxfilesize 是 idx (解壓縮後)的大小。 sametypesequence 可麻煩了, 你可以在 dict 中放入很多筆 wav 檔案記錄, 然後在 sametypesequence=W 接著, dict file 在處理時就會忽略 'W' 這個字元。 再另外一個常見的情況做為例子: 你可以設做: sametypesequence=tm 這樣每個字在 dict 檔裡的處理就會忽略掉 't' 和 'm' 字元, 此外,以 '\0' 和 'm' 結尾的輸入也會被當作每個記錄的結尾。 .idx 是生字清單 它會依序存放在這個檔案裡頭,每筆記錄應作下列格式: word_str; (utf8 charset 並且以 '\0' 做結尾。) word_data_offset; word_data_size; |