HPC.ru lite - Все форумы
Форум: КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее
Тема: Читалка и словарь
Страницы: [1] 2 3
[Ответить]
geometer [25.02.2006 16:05] Читалка и словарь:
Приветствую всех,
тут возник "архитектурный" вопрос в процессе написания FBReader, и я решил обратиться за советом к общественности. 
Одна из явно недостающих фич – это интеграция со словарем. Тут вопроса нету, ее нужно делать. Вопрос – как делать.
Основные варианты:
1) Когда нужно – вызывать стороннюю программу – смотрелку словаря. Например, zbedic, или гипотетическую смотрелку sdictionary.
2) Встроить возможность показа словарных статей прямо в FBReader.
У обоих вариантов есть свои плюсы и минусы, хотелось бы услышать глас народа
– что лучше, что хуже, и почему. И нету ли еще вариантов?
Darkcat [25.02.2006 16:19] :
ИМХО - сделать кнопочку "перевод слова" при активации которой тап стилуса на слове вызывает диалоговое окно (от читалки) с переводом. Это быстрее и понятнее, чем вызывать другую программу.
Mikhail Kostousov [25.02.2006 17:59] :
Сам немного ковырялся еще с justreaderom - подправлял его работу со словорем. Там был вытащен кусок от ZBedic...
Если можно, то я немного напишу своих не реализованных задумок и мыслей. Если нельзя - прошу извенить и не читать мой пост.
1) Перекидывать слово в стороннюю программу, аля ZBedic или еще что-то, берет очень много времени, по крайней мере на старых машинках с малой памятью. Потом, ZBedic - чужой. Ни кто, конечно, не мешает его править, но он адаптирован именно как просто словарь, а не как словарь для активного перевода текста... Но с другой стороны, я думал, имеет смысл связаться с автором ZBedic с просьбой разделить его библиотеку и морду-интерфейс, дабы можно было пользоваться открыто механикой ZBedic но со своими наворотами. И в тоже самое время - не переписывать половину модуля работы со словарем из-за того, что в ZBedic появилась новая приятная фича.
2) Насчет перевода внутри читалки. Если его реализовать непосредственно, то внутри можно реализовать дополнительные механизмы помогающие читателю читать быстро и удобно. Понятно, что текст состоит не из словарных слов, а в основном из их форм. Поэтому была мысль сделать механизм трансформации слов, например, на основе регулярных выражений (для английского языка).
Например, ткнули на слово которое имеет вид(регулярные выражения я не пишу здесь для большей понятности)
"XXXXXXing", если его нету, можно попробовать найти слово "XXXXXX", Или, XXXXXed->XXXXXe->XXXXX
XXXXXs->XXXXX
XXXXXer->XXXXX
Можно попробовать сделать возможность автоматических подстановок для словарей и распространять их вместе со словарями...
Я делал в JustReader просто обрубку последних букв. Так, если нет слова ABCDEFG, то пытался найти слово ABCDEF, если не нашлось такое, то ABCDE
Но обрубал не более трех букв.
Боюсь, что меня могут не совсем понять, поэтому пытаюсь сконцентрировать на деталях, которые, на мой взгляд, наиболее важны.
Так, например, по мимо предложенного варианта слова, нужна возможность быстро дополнить его (зная по правилам граматики, что это может быть форма другого слова), тоесть должена быть возможность изменения слова, плюс - автоматический вызов клавиатуры. Потом другая проблема, нажав на слово, и получив поверху диалог словаря, часто теряешь место где читал. Вот бы это слово подсветить не надолго после сворачивания словаря. Потом, в словорях очень любят писать "см то-то". Это "то-то" приходится самому набирать... А все влияет на скорость чтения, а при чтении художественной литературы, интерес теряется к произведению. Вот бы по нажатию "то-то" сново переходить по словарю...
Я прошу прощения, что столько написал коментариев по теме (а может и не по теме). Надеюсь, что ни чем не обидел автора, советуя и рассуждая.
Хочу еще поблагодарить geometr'a за чудесную читалку. И хочу предложить помощь, пусть небольшую, ввиду недостатка времени, но может быть весомую.
jkukka [25.02.2006 18:38] :
Я за встраивание перевода, т.к. при этом можно будет оформить перевод красиво, например, в виде тултипа. Ну и по скорости это выигрышнее.
geometer [25.02.2006 19:47] :
Mikhail Kostousov писал(а):
Я прошу прощения, что столько написал коментариев по теме (а может и не по теме). Надеюсь, что ни чем не обидел автора, советуя и рассуждая.
Ни в коем разе. Наоборот, спасибо за советы, кое-что из этого и мне приходило в голову, но далеко не все. И некоторые мысли уже возникли по мотивам. Так что если есть еще соображения -- я с удовольствием послушаю. (Если они слишком длинны для форума -- можно перейти в ЛС или письма.) И, кстати, обсуждения в таком деле -- обычно куда более весомая помощь, чем дополнительные кусочки кода. 
Правда, времени в обозримом будущем не так много, как даже уже имеющихся соображений
, так что сколько времени пройдет до реализации -- не скажу.
Про перебор форм слова -- надо бы посмотреть, наверняка ведь есть какая-нибудь стандартная техника (а то и готовая/почти готовая библиотека). Может, кто-то знает что-нибудь об этом?
geometer [25.02.2006 19:52] :
jkukka писал(а):
Я за встраивание перевода, т.к. при этом можно будет оформить перевод красиво, например, в виде тултипа. Ну и по скорости это выигрышнее.
Про тултип я думал с самого начала, но тут есть проблема, что делать, если точно такого слова нет в словаре. Ну хорошо, если его удастся однозначно угадать. А если будет несколько вариантов, например? А если ни одного, тогда что делать? А если угадывание прошло неудачно -- как посмотреть в словаре близкие слова?
Я не к тому, что вариант плохой, наоборот, было бы очень здорово его таки реализовать. Но надо придумать удобные действия во всех случаях. Принимаются все идеи по этому поводу. 
zGremlin [25.02.2006 20:14] :
Mikhail Kostousov писал(а):
... Но с другой стороны, я думал, имеет смысл связаться с автором ZBedic с просьбой разделить его библиотеку и морду-интерфейс, дабы можно было пользоваться открыто механикой ZBedic но со своими наворотами. И в тоже самое время - не переписывать половину модуля работы со словарем из-за того, что в ZBedic появилась новая приятная фича.
Вообще-то zbedic и так разбит на библиотеку и интерфейс...
Вот только библиока статическая, и поэтому влинковывается в исполняемый файл.
geometer писал(а):
Про тултип я думал с самого начала, но тут есть проблема, что делать, если точно такого слова нет в словаре. Ну хорошо, если его удастся однозначно угадать. А если будет несколько вариантов, например? А если ни одного, тогда что делать? А если угадывание прошло неудачно -- как посмотреть в словаре близкие слова?
Тултип и в самом деле не всегда проходит - например большая словарная статья, опять же перебор слов (смена словаря и т.д)... тут (с пожеланиями) можно дойти и до реализации словаря более мощного чем те, которые уже имеются 
Я бы предпочел открывать полноценное окно... но в голову пришел и компромисс - отображать тултип с возможностью его свернуть или развернуть в (полноэкранное) окно, где и будут все навороты (скажем по кнопкам в тултипе или его заголовке или просто кликом на тултипе или снаружи).
jkukka [25.02.2006 21:41] :
geometer писал(а):
Про тултип я думал с самого начала, но тут есть проблема, что делать, если точно такого слова нет в словаре. Ну хорошо, если его удастся однозначно угадать. А если будет несколько вариантов, например? А если ни одного, тогда что делать? А если угадывание прошло неудачно -- как посмотреть в словаре близкие слова?
Я не к тому, что вариант плохой, наоборот, было бы очень здорово его таки реализовать. Но надо придумать удобные действия во всех случаях. Принимаются все идеи по этому поводу. 
Сделать в тултипе ссылке "подробнее", по которой открывать большое окно со статьей, списком слов и теде.
Mikhail Kostousov [26.02.2006 16:04] :
jkukka писал(а):
[quote:2303382547="geometer"]Про тултип я думал с самого начала, но тут есть проблема, что делать, если точно такого слова нет в словаре. Ну хорошо, если его удастся однозначно угадать. А если будет несколько вариантов, например? А если ни одного, тогда что делать? А если угадывание прошло неудачно -- как посмотреть в словаре близкие слова?
Я не к тому, что вариант плохой, наоборот, было бы очень здорово его таки реализовать. Но надо придумать удобные действия во всех случаях. Принимаются все идеи по этому поводу. 
Сделать в тултипе ссылке "подробнее", по которой открывать большое окно со статьей, списком слов и теде.
А надо попробовать посмотреть, до какого количества слов можно добраться только с тоолтипом... Тоесть, одним кликом. Если в больше 50% случаев придется нажимать подробнее, то это получится не рационально.
А вообще, если речь идет, допустим, об английских словарях. Есть словари типа сократа, где слову на английском ставится практически один вариант слова на русском, без форм, без примеров, без слово-сочетаний. Может быть имеет смысл сделать так, что бы при нажатии на слово появлялось маленькая подсказка со словом из одного словаря, а при нажатие на "более подробно" появлялась более подробная статья из другого словаря, например словаря мюллера?
DMych [26.02.2006 16:37] :
А по мне так лучше не париться, а вызывать внешнюю прогу. Ну не хочу я дублировать (по сути) функциональность уже стоящего словаря, к тому же не так часто он бывает нужен. А размер дистрибутива увеличится значительно (да еще словари пусть собственные будут, в збедиковском же формате, но в другом каталоге... - тут я ваще выкину такой "телевизор со встроенным тостером" нафик!
).
Как вариант - сделать набор модулей/плагинов, доставляемых отдельными ipk (ну, и для ленивых - all-in-one.ipk):
[*:a310ed61c7] поддержка такого-то формата (напр. мне нужны форматы Псиона и Пальма - спасибо тов. Геометру за них, а кому-то - нет, а мне вот LIT не нужен напрочь)
[*:a310ed61c7] поддержка gzip/bzip/...
[*:a310ed61c7] встроенный словарь
[*:a310ed61c7] (что еще можно "оторвать" от базовой читалки?)
[Ответить]
[Вперед >]