
У меня есть словарь в формате StarDict без файла *.ifo.
Я знаю, как должен выглядеть файл, но не знаю, сколько именно слов в словаре, и как это проверить, не пересчитывая вручную [sic].
Я потратил пару часов на поиски ответа, но так ничего и не нашел.
Я установил stardict-tools из Центра программного обеспечения, но, судя по всему, в нем нет опции «stardict-repair», упомянутой здесь:http://code.google.com/p/stardict-3/wiki/RepairStarDictDicts, на странице проекта StarDict.
Поэтому у меня два вопроса: 1. как получить stardict-repair в Ubuntu 12.10 и запустить его; 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 см.Форматы StarDict
Если вам необходим инструмент восстановления, вам придется скомпилировать и установить пакет из исходного кода.
Как скомпилировать пакет
Загрузить исходный код
Откройте терминал в ~/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 и остальной частью пакета, который у вас есть. Если это так, то должно быть возможно скомпилировать предыдущую версию инструмента.