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

Словарь с исполняемым кодом. Возможно?

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

Re: Словарь с исполняемым кодом. Возможно?

Postby ikm » Sat Jun 04, 2011 9:38 pm

Спасибо! Идея мне понравилась, я правда решил реализовать немножко по-своему :) Результаты в git.
ikm
Автор GoldenDict
 
Posts: 1592
Joined: Wed Feb 04, 2009 10:40 am

Re: Словарь с исполняемым кодом. Возможно?

Postby Tvangeste » Sun Jun 05, 2011 7:00 am

А можно чуть подробнее описать, что с этой штукой можно делать полезного?

P.S. То бишь, что фича делает - понятно, но вот как это можно полезно применить - вот это пока не очень понятно. Пока вот попробовал делать `ls`. Да, прикольно, конечно, что можно список файлов увидеть в списке кандидатов на перевод! :)
Tvangeste
 
Posts: 893
Joined: Thu Jun 02, 2011 11:42 am

Re: Словарь с исполняемым кодом. Возможно?

Postby Tvangeste » Sun Jun 05, 2011 7:43 am

ikm wrote:Спасибо! Идея мне понравилась, я правда решил реализовать немножко по-своему :) Результаты в git.

Константин, на виндах не собирается:

Code: Select all
programs.hh:38: error: declaration of '_iob' as array of references
programs.hh:38: error: expected ')' before ',' token
programs.hh:38: error: variable or field 'QString' declared void
programs.hh:38: error: expected ';' before 'error'


Вот мега-патч с фиксом:
https://gitorious.org/goldendict/golden ... equests/11
Tvangeste
 
Posts: 893
Joined: Thu Jun 02, 2011 11:42 am

Re: Словарь с исполняемым кодом. Возможно?

Postby ikm » Sun Jun 05, 2011 7:53 am

Вообще всё это изначально задумывалось только лишь для поддержки TTS, которая в линуксах традиционно делается через запуск festival или espeak с нужным словом в качестве параметра. Однако если уж делать, то почему бы не добавить еще и Plain Text, Html и Prefix Match, реализованные точно таким же образом, через запуск внешних программ? С помощью этих нехитрых инструментов при желании можно реализовать поиск в любом источнике данных, не парясь с Qt и C++. Например, можно сделать:

  • скрипт, который будет выдирать с translate.google.com или multitran.ru перевод слова и красиво его выводить (гораздо лучше, чем это делают сейчас websites)
  • полнотекстовый поиск (zgrep и вперед!)
  • постинг слов в запоминалку через словарик, указав тип словаря как TTS (тут люди очень любят просить эту фичу - и сейчас она делается на раз-два за 10 секунд: bash -c "echo '%GDWORD%' >> ~/mywordlist.txt")
  • запуск сторонних консольных утилит типа dict-клиента (который пока так и не реализован нативно в GD). Через него и Prefix Match работать будет.
  • поиск в манах (уже идет в качестве примера на линукс-системах).
Как видишь, возможностей масса, кому на что фантазии хватит. То есть, это набор костылей, с помощью которых можно бодренько обеспечить себе путь в ранее недоступные места :)

p.s. Замержил фикс :)
ikm
Автор GoldenDict
 
Posts: 1592
Joined: Wed Feb 04, 2009 10:40 am

Re: Словарь с исполняемым кодом. Возможно?

Postby hooky-mars » Sun Jun 05, 2011 8:50 am

ikm wrote:Спасибо! Идея мне понравилась, я правда решил реализовать немножко по-своему :) Результаты в git.

Согласен, так лучше и логичней. Но есть пара мометов:
1. Почему в prefixMatch не юзается maxResults, ведь, теоритически, результат может быть огромным?
2. Я бы таки заменил строчку:
matches.push_back( Dictionary::WordMatch( gd::toWString( result[ x ] ) ) );
на
matches.push_back( Dictionary::WordMatch( Utf8::decode( result[ x ].toStdString() ) ) );
собсна я так и сделал, иначе у меня кракозябры вылазят при поиске по французскому славорю. Или лучше, что бы моя програ не заморачивалась, и не конвертира результат поиска в utf8?

Tvangeste wrote:А можно чуть подробнее описать, что с этой штукой можно делать полезного?

P.S. То бишь, что фича делает - понятно, но вот как это можно полезно применить - вот это пока не очень понятно. Пока вот попробовал делать `ls`. Да, прикольно, конечно, что можно список файлов увидеть в списке кандидатов на перевод! :)


Ну я, на пример, захотел прикрутить доп. онлайн словарик, с возможностью быстрого поиска и исправленным выводом контента.
hooky-mars
 
Posts: 9
Joined: Sat May 28, 2011 12:23 pm

Re: Словарь с исполняемым кодом. Возможно?

Postby ikm » Sun Jun 05, 2011 9:05 am

hooky-mars wrote:1. Почему в prefixMatch не юзается maxResults, ведь, теоритически, результат может быть огромным?

Потому что по-хорошему этот maxResults надо передавать скрипту, и это сам скрипт должен ограничиваться. Никто ему не мешает и самому сейчас самоограничиваться, без подсказки программы :) Конечно, можно сделать и так, чтобы выкидывать все результаты программы, которые не входят в первые maxResults. Программа будет пыхтеть-пыхтеть, а потом большая часть её трудов пойдет насмарку - неоптимально, но по крайней мере GUI не умрет от обилия результатов :) Не знаю...

hooky-mars wrote:2. Я бы таки заменил строчку:
matches.push_back( Dictionary::WordMatch( gd::toWString( result[ x ] ) ) );
на
matches.push_back( Dictionary::WordMatch( Utf8::decode( result[ x ].toStdString() ) ) );

result[ x ] - это уже юникодная строка, которая была ранее получена из QString::fromUtf8() для stdout. Только что перепроверил - программа интерпретирует stdout именно как utf-8. Настаиваю, что проблема все-таки в программе, которая выдает не utf-8 на выходе.
ikm
Автор GoldenDict
 
Posts: 1592
Joined: Wed Feb 04, 2009 10:40 am

Re: Словарь с исполняемым кодом. Возможно?

Postby hooky-mars » Sun Jun 05, 2011 11:37 am

Если не скерет, какой средой пользуетесь? А то, у меня, в Kdevelop не работают breakpoints
hooky-mars
 
Posts: 9
Joined: Sat May 28, 2011 12:23 pm

Re: Словарь с исполняемым кодом. Возможно?

Postby Tvangeste » Sun Jun 05, 2011 12:14 pm

hooky-mars wrote:Если не скерет, какой средой пользуетесь? А то, у меня, в Kdevelop не работают breakpoints

Популярный вопрос! :)

viewtopic.php?f=11&t=1127
Tvangeste
 
Posts: 893
Joined: Thu Jun 02, 2011 11:42 am

Re: Словарь с исполняемым кодом. Возможно?

Postby hooky-mars » Mon Jun 06, 2011 5:32 am

Решил свую программулину под форточкаим заюзать, только нет скомпилированного goldendict (последней версии) под винду. Когда можно ожидать, что на сайте голдендикт выложат portable версию? А то на работе я не могу поставить Qt, чтоб самому собрать. Жалко goldendict нельзя под MSVS собрать, точнее, думаю, можно, только все равно надо поствить Qt для этого :D
hooky-mars
 
Posts: 9
Joined: Sat May 28, 2011 12:23 pm

Previous

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

Who is online

Users browsing this forum: No registered users and 13 guests