New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Как пришить поддержку dict протокола

Ветка для общения разработчиков и координации разработки

Как пришить поддержку dict протокола

Postby ayvango » Thu Dec 09, 2010 2:09 pm

Есть желание пришить к GD поддержку dict протокола для работы с удалёнными серверами. Не подскажите в каком модуле следует копать, на что обратить внимание в первую очередь?
ayvango
 
Posts: 4
Joined: Tue Sep 07, 2010 5:41 am

Re: Как пришить поддержку dict протокола

Postby ikm » Thu Dec 09, 2010 4:26 pm

Берете за основу какую-нибудь mediawiki.hh/cc и пишете по её образу и подобию источник словарей. Сам интерфейс словаря (Dictionary) детально откомментирован в dictionary.hh. Вообще программные интерфейсы документированы главным образом в .hh-файлах. Плюс настройки - добавляете их в config.hh/cc и интерфейс к ним в editdictionaries.cc/hh, sources.cc/hh и тому подобным.

Работу с сокетами надо организовывать через средства Qt. Вообще средства Qt следует использовать по максимуму. В коде когда-то была попытка абстрагирования от Qt, следствия которой до сих пор видны и тут и так (использование разных типов строк и т.п.), но в общем мы от этого уже отказались, Qt стоит использовать везде.
ikm
Автор GoldenDict
 
Posts: 1592
Joined: Wed Feb 04, 2009 10:40 am

Re: Как пришить поддержку dict протокола

Postby ayvango » Fri Dec 10, 2010 7:00 am

Для dict есть готовые библиотеки на c или на с++. Я просто хотел бы их прикрутить. Разумеется ни о каких QSocket там речь не идёт. Это будет выбиваться из политки кода?
ayvango
 
Posts: 4
Joined: Tue Sep 07, 2010 5:41 am

Re: Как пришить поддержку dict протокола

Postby ikm » Fri Dec 10, 2010 9:07 am

Нет, не будет, если библиотеки кросс-платформенны (linux/win/mac) и распространяются под gpl-совместимой лицензией.
ikm
Автор GoldenDict
 
Posts: 1592
Joined: Wed Feb 04, 2009 10:40 am

Re: Как пришить поддержку dict протокола

Postby Michael72 » Tue Mar 12, 2013 5:56 pm

ayvango wrote:Есть желание пришить к GD поддержку dict протокола для работы с удалёнными серверами. Не подскажите в каком модуле следует копать, на что обратить внимание в первую очередь?
Меня тоже очень сильно интересует реализация такой поддержки.
Получилось ли что-нибудь у вас в этом направлении?
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Как пришить поддержку dict протокола

Postby Michael72 » Mon Mar 17, 2014 3:46 pm

Прошёл уже год, и только через год удалось случайно наткнуться на способ решения данной задачи, который, как я понимаю, уже давно "лежал под носом", и я его не замечал, хотя искал в данном направлении весьма интенсивно. По этой причине хочу сейчас описать как можно подробнее, как решается данная задача, чтобы это могло принести пользу заинтересованным в данном функционале.
В меню Правка - Словари - Источники (F3) вкладка "Программы" позволяет установить обращение к требуемой внешней программе. Щелкните на кнопке Добавить и создайте запись аналогично тому, как это представлено на скрин-шоте:
Image
Пользователи ОС GNU/Linux могут просто напечатать в поле Командная строка:
Code: Select all
dict -h dict.dvo.ru %GDWORD%

Щелкните на ОК. Будет создан Словарь Он-Лайн, содержащий все словарные базы на DICT-сервере dict.dvo.ru. Список других DICT-серверов см. здесь. Теперь необходимо установить консольный DICT-клиент DICT.

Установка DICT

Если вы используете ОС GNU/Linux, то установить программу DICT вы можете из репозитория. Для этого в командной строке терминала введите:
Code: Select all
sudo apt-get install dict

Программу DICT для Windows можно найти здесь. Но у пакета, который можно скачать с этого сайта, есть определённые проблемы с интернационализацией. Для решения проблемы необходимо обновить файл cygwin1.dll до версии не меньше 1.7.

Скопируйте содержимое ZIP-архива в каталог C:\progs\dict.
Проверяем:
Image

Примечание. Небольшой секрет для тех, кто плохо знаком с консольным dict-клиентом. Можно добиться большей информативности при поиске определений, если использовать стратегию word. Для указания стратегии используется ключ -s. Таким образом, если в качестве командной строки указать:
Code: Select all
dict --html -h dict.dvo.ru -s word %GDWORD%

то поиск в словарях будет проводится по слову. Это значит, что будут показаны все словарные статьи со словосочетаниями, в которых присутствует данное слово. Например, теперь поиск по слову אפשרות будет находить в частности и словарную статью для словосочетания אי אפשרות, а не только такие, которые для одного слова אפשרות.
Last edited by Michael72 on Sat May 12, 2018 1:18 pm, edited 6 times in total.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm


Return to Разработка

Who is online

Users browsing this forum: No registered users and 11 guests