我有一本 StarDict 格式的词典,没有 *.ifo 文件。
我知道文件应该是什么样的,但我不知道这本字典里到底有多少个单词,也不知道如何在不手动计数的情况下检查它。
我花了几个小时寻找答案,但一无所获。
我已经从软件中心安装了 stardict-tools,但显然它没有配备这里提到的“stardict-repair”选项:http://code.google.com/p/stardict-3/wiki/RepairStarDictDicts,位于星际译王 (StarDict) 项目页面上。
所以我的问题有两个:1. 如何在 Ubuntu 12.10 上获取 stardict-repair 并使其运行;2. (可能有点离题)如果没有,如何方便地创建一个正确的 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 软件包不是当前版本,所以这可能是原因,也可能是其他原因。
要制作自己的词典,请参阅StarDict 创建词典
有关 .ifo 格式的详细信息,请参阅星际译王格式
如果您必须有修复工具,则需要从源代码编译并安装该包。
如何编译软件包
下载源代码
在 中打开终端~/Downloads
。下载将转到您运行下载命令时所在的目录。
运行hg clone https://code.google.com/p/stardict-3/
下载源代码。
预编译步骤
其中 2 个文件中有错误需要修复。由于对其中一个所需库进行了更改,因此每个文件都有一行需要更改才能进行编译。
这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.sh
现在运行配置文件,并选择--disable-dict
仅编译工具。
./configure --disable-dict
使用以下命令编译该包(注意,这次make
没有)./
make
通常后面跟着make install
,但我认为我们不想在这里这样做,因为它会从 Ubuntu 存储库复制已安装的文件。相反,cd tools/src
您将在其中找到刚刚编译的二进制文件。
在终端中,二进制文件将是绿色文件,没有扩展名。(以 结尾的同名文件.o
是不再需要的中间文件,以 结尾的文件.cpp
是原始源代码,也可以忽略。
stardict-repair
将和 之前可能未包含的任何其他文件复制到/usr/lib/stardict-tools
。您只需复制二进制文件。请记住,./
运行时会显示 。
注意:我们编译了最新版本。虽然我认为可能性不大,但这个版本的 stardict-repair 和您拥有的其他软件包之间可能存在一些不兼容问题。如果是这样,应该可以编译该工具的先前版本。