
我有一本 StarDict 格式的字典,沒有 *.ifo 檔案。
我知道該文件應該是什麼樣子,但我不知道字典到底有多少個單詞,也不知道如何在不手動計數的情況下檢查它[原文如此]。
我花了幾個小時尋找答案,但一無所獲。
我已經從軟體中心安裝了 stardict-tools,但顯然它沒有配備「stardict-repair」選項,這裡提到:http://code.google.com/p/stardict-3/wiki/RepairStarDictDicts,在 StarDict 專案的頁面上。
所以我的問題有兩個:1.如何在Ubuntu 12.10上獲得stardict-repair並讓它運行; 2.(可能有點題外話)如果沒有ifo文件,如何方便地建立正確的ifo檔案。
答案1
這些工具安裝到/usr/lib/stardict-tools/
.stardict-index
並且stardict-verify
都在那裡。由於它們位於目前 PATH 設定之外,因此終端無法找到它們來運作。
要從終端運行它們,您有多種選擇:
打開終端並使用包含路徑的完全限定名稱:
/usr/lib/stardict-tools/stardict-verify
瀏覽至 stardict-tools 目錄並使用前綴
./
:cd /usr/lib/stardict-tools
,然後使用./startdict-verify
如果您發現自己經常使用這些工具,則可以將目錄新增至 PATH 或新增別名、.desktop 檔案或製作自己的包裝腳本等。
stardict-repair
但是,不包含在目錄中。 Ubuntu 軟體包不是當前版本,因此這可能是原因,也可能有其他原因。
要製作自己的字典,請參閱星際譯王創作詞典
有關 .ifo 格式的詳細信息,請參閱星際譯王格式
如果您必須擁有修復工具,則需要從原始程式碼編譯並安裝該套件。
如何編譯套件
下載原始碼
在 中打開一個終端機~/Downloads
。下載將轉到您執行下載命令時所在的目錄。
運行hg clone https://code.google.com/p/stardict-3/
下載原始碼。
預編譯步驟
其中 2 個文件中有一個錯誤需要修復。由於對所需庫之一進行了更改,因此每個文件在編譯之前都需要更改一行。
這兩個檔案是libcommon.h
和libcommon.cpp
,但您可以下載更新的檔案。
下載地址為http://code.google.com/p/stardict-3/issues/detail?id=31。向下滾動,直到看到附加了替換文件的帖子。
將每個文件下載到 中~/Downloads/stardict-3/lib/src
,當詢問您是否要替換現有文件時,選擇「是」。
標準的 Ubuntu 安裝不會自動安裝編譯工具,而且每個應用程式都有自己所需的函式庫。
對於 stardict 工具,您需要:
sudo apt-get install build-essential automake libtool libmysqlclient-dev libpcre3-dev
編譯
cd ~/Downloads/stardict-3/
大多數軟體包都有一個現成的configure
文件,您可以在此時運行該文件。使用此包,您需要運行實用程式來建立文件configure
。
確保您位於該stardict-3
目錄中(結構中有多個 autogen 文件,您需要運行正確的文件),然後:
./autogen.sh
現在運行配置文件,並選擇--disable-dict
僅編譯工具。
./configure --disable-dict
編譯包(注意這次make
沒有)./
make
通常後面跟著make install
,但我認為我們不想在這裡這樣做,因為它會複製從 Ubuntu 儲存庫安裝的檔案。相反,cd tools/src
您將在其中找到剛剛編譯的二進位。
在終端機中,二進位檔案將是綠色文件,並且沒有副檔名。 (以 結尾的同名文件.o
是不再需要的中間文件,以 結尾的文件.cpp
是原始原始碼,也可以忽略。
stardict-repair
將之前可能未包含的任何其他文件複製到/usr/lib/stardict-tools
.您只需複製二進位檔案即可。記住./
運行它們的時間。
需要注意的是:我們編譯了最新版本。儘管我認為可能性不大,但此版本的 stardict-repair 與您擁有的其他軟體包之間可能存在一些不相容。如果是這樣,應該可以編譯工具的早期版本。