Решил выложить в общий доступ словарь, который получился после игр с пропатченным DictUnifier.
Оригинал можно взять с sourceforge.net.
Собственно ссылка: https://www.rapidshare.com/files/191887152/rus_eng_full.dictionary.zip
И обратный перевод: https://www.rapidshare.com/files/3771216057/eng_rus_full.dictionary.zip
Showing posts with label stardict. Show all posts
Showing posts with label stardict. Show all posts
Свободные словари (часть 1)
Пролог
Я с нетерпением ждал нового Show Leopard. Как только долгожданный диск стал доступен, тут же был приобретен за кровные 990р :). С приобретением нового лицензионного продукта, решил окончательно покончить с остатками вареза на своем маке. Началась война за чистоту содержимого давно. В этот раз дошел до последнего рубежа (надеюсь все остальное уже «чисто»): словари Lingvo. О словарях речь и пойдет.Попытка номер раз
Большая часть простых пользователей для начала попытается найти готовое (и красивое решение). Выбор программы: Сама реализация от Apple меня очень даже устраивает. Но есть один нюанс … готовые словари. К сожалению родной Dictionary.app согласен работать только с одним форматом словарей, а именно *.dictionary. Выбор словарей: Жаль но готовых русско-английский/англо-русский словарей я не нашел (возможно не дано). Адаптация словарей: Если нет готовых (и «родных») словарей надо найти конвертер. Как мне кажется самая большая коллекция свободных (и к тому же довольно объемных) словарей расположена на xdxf.revdanica.com. Портал может предложить 2 вида словарей: XDXF и StarDict. Значит надо найти конвертер для этих форматов. И о чудо есть прекрасный проект, где можно найти DictUnifier который позволит нам превратить StarDict словарь в Apple Dictionary словарь. К сожалению проект скорее мертв чем жив (последние обновления в приложение датированы Мартом 31, 2008). И полученный словарь не всегда работает в Dictionary.app.Попытка номер два
Альтернативные программные продукты (бесплатные конечно). Что мы имеем из готового? Как оказалось, не много :(. В основном это старые малопригодные к работе приложения. Приводить их список особого смысла думаю нет.Попытка номер три
А почему мы обошли стороной StarDict (скомпилированный под Mac), так любезно предоставленный разработчиками StarDict. Ответ прост. Таким продуктом пользоваться не хочется: Выглядит оно может и хорошо (все в мире относительно).Попытка номер ...
Наверное пора сдаваться. Готовых решений нет. Но постойте ведь мы же пользуемся UNIX системой! Конечно! Надо найти что-то из MacPorts. Увы ничего… Ничего страшного! Ведь мы же не безрукие (хочется верить), «адаптируем» сами. И тут какраз нашелся консольный вариант StarDict: sdcv. Ура!!! Осталось только собрать это чуда для себя :). Качаем, распаковываем, открываем терминал, и…: pkgconfig и glib2 никто (из Apple) установить в систему не «успел» %). Я пошел простым путем: зачем делать самому, можно взять готовое. Устанавливаем всем известный (надеюсь это так %) ) MacPorts и вперед:$ port deps glib2 Full Name: glib2 @2.20.5+darwin Build Dependencies: pkgconfig Library Dependencies: gettext, libiconv, perl5, python_select $ sudo port install glib2Затем «собираем» sdcv:
$ cd sdcv-0.4.2 $ ./configure --prefix=/opt/local $ make $ make check $ sudo make install $ make cleanНо не все так просто, нас ждет две трудности (для шага make)
- Ошибочка в lib.cpp
lib.cpp: In member function ‘const gchar* offset_index::read_first_on_page_key(glong)’: lib.cpp:516: error: no matching function for call to ‘min(long unsigned int, guint32&)’
К счастью решается просто: в форему написано что в svn уже поправили (берем новую версию файла). Вот кстати можно взять патчик отдельно. - getopt.h содержит «не правильное» для «нас» определение функции getopt().
In file included from sdcv.cpp:33: ./getopt.h:146: error: declaration of C function ‘int getopt()’ conflicts with /usr/include/unistd.h:458: error: previous declaration ‘int getopt(int, char* const*, const char*)’ here
Решение еще проще: Меняем стоку «extern int getopt ();» на «extern int getopt (int __argc, char *const *__argv, const char *__shortopts);» в вышу указанном файле. Вот diff -u для оригинала и измененного:--- getopt.h_orig 2005-01-12 00:11:10.000000000 +0300 +++ getopt.h 2009-10-01 20:38:22.000000000 +0400 @@ -143,7 +143,8 @@ errors, only prototype getopt for the GNU C library. */ extern int getopt (int __argc, char *const *__argv, const char *__shortopts); # else /* not __GNU_LIBRARY__ */ -extern int getopt (); +extern int getopt (int __argc, char *const *__argv, const char *__shortopts); # endif /* __GNU_LIBRARY__ */ # ifndef __need_getopt
Немного вольностей
Но вот беда. Вывод sdcv не очень красочный:

Эпилог
Так как проект sdcv тоже больше похож на мертвеца, думаю что следующий шаг будет в написании чего-то самому. Жаль только что из всех языков программирования сейчас пользуюсь только perl/ksh. Другие позабыл уже давно. Поэтому волонтеры заинтересованные в написании альтернативы Dictionary.app и представленного здесь «Костылъ.арр», могут обращаться. В данный момент начил осваивать GUI в Xcode. Надеюсь на продолжение истории…
Subscribe to:
Posts (Atom)
