Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » GoldenDict (часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущее обсуждение: Часть 1




 
Актуальная версия 1.5.0:
Windоws Qt 4.8.6 или Qt 5.12.3, последний EXE-файл: 1.5.0-18-g59363bc9.
Плагин dsengine.dll для Qt 5.6-based версии на Windows XP: dsengine_5.6.1_for_XP.7z
как собрать актуальный рабочий комплект для windows (без словарей)
MacOSX 1.5.0-18-g59363bc9 Intel; архив прежних версий: на github (09.2012–04.2019), на sourceforge (06.2016–04.2019)
 
Расширенная настройка интерфейса
 
GoldenDict — новая словарная программа, обладающая следующими особенностями:  
 
  • Графический интерфейс на основе табов, для создания которого использована библиотека Qt;
  • Интеграция с html-движком WebKit для корректного представления материалов в html-формате;
  • Поддержка подключения словарей в форматах: Babylon (.bgl/.gls), StarDict (.ifo/.dict./.idx/.syn), Dictd (.index/.dict), ABBYY Lingvo (.dsl тексты и аудиоматериалы .lsa/.dat, .lsd - только в Android), XDXF, AARD, SLOB, ZIM, MDX/MDD, EPWING;
  • Система морфологии, которая находит основы слов при поиске, улучшая его результаты, а также дает рекомендации по правильному написанию слов. Используются обычные словари Hunspell/Myspell;
  • Поддержка индексации звуковых файлов в директориях, формируя из них словари аудио-произношений;
  • Поддержка отправки запросов в Wikipedia, Wiktionary и другие MediaWiki сайты;
  • Режим работы в роли глобальной для всего десктопа всплывающей подсказки, позволяющий выводить информацию для выделенного или помещенного в буфер обмена слова из любого текста внешней программы;
  • Для загрузки доступна версия, имеющая в комплекте набор англо-русско-английских словарей, словарей морфологии и примеры произношения слов на английском языке.  
     
    Программа позиционируется как функциональная замена StarDict, поддерживающая большее количество форматов файлов и более качественное их отображение. Программа умышленно не вводит собственного формата файлов, ставя вместо этого задачу наиболее полно поддержать все популярные существующие.
     
    Официальные Early Access билды для Windоws :: для MacOSX :: для Linux.
    Официальные Development билды для Windоws.
    Официальный форум поддержки GoldenDict.
    Официальный баг-трэкер.
     
    Параллельные топики:
    GoldenDict - New Level - Разработка новых форматов словарей для GD: DSLGD, HTMLGD; подключение речевых движков; режим закладок; варианты полнотекстового поиска.
     
    Как сжимать словари в формат .dz для использования в GoldenDict :: DictZip 1.12.1 (latest) :: Оболочка DictUI
     
    Ссылки на готовые сборки
     
    Ссылки на словари для GoldenDict

  • Всего записей: 38754 | Зарегистр. 26-02-2002 | Отправлено: 11:50 23-02-2017 | Исправлено: yozhic, 22:10 16-03-2024
    ramanuki



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    del

    Всего записей: 804 | Зарегистр. 07-08-2013 | Отправлено: 20:51 27-11-2018 | Исправлено: ramanuki, 21:06 27-11-2018
    ArtS21

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    goldendict умеет создавать индекс для полнотекстового поска, т.е. поиска по текстам словарных статей

    Нет ли другого способа вызвать GD горячими клавишами для полнотекстового поиска, кроме как используя две комбинации горячих клавиш:  
    сначала CTRL+C+C (Перевести выбранный текст или содержимое буфера, если текст не выбран), а затем только Ctrl+Shift+F (Открыть или переключиться на окно полнотекстового поиска)?  
    Хотелось бы чтобы одной комбинацией горячих клавиш сразу полнотекстовый поиск учинялся...

    Всего записей: 275 | Зарегистр. 07-06-2005 | Отправлено: 11:08 28-11-2018
    Nikolai2004



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    можно ли реализовать возможность отключения группы словарей "All"?
    чтобы её не было в списке групп при условии наличия других

    Всего записей: 1523 | Зарегистр. 07-01-2004 | Отправлено: 21:30 06-12-2018 | Исправлено: Nikolai2004, 21:30 06-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nikolai2004
    А зачем? Вы считаете, что при наличии других групп она никому не нужна и не может быть нужна?

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 21:50 06-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Что-то странное с определением языка. Португальский прописывается в тегах почему-то как  

    Код:
    <div class="gdarticlebody gdlangfrom-po" lang="po"

    Насколько я помню правильная двух-буквенная аббревиатура - pt . А трёх-буквенная - por. Но "po" как-то ни туда, ни сюда.
     
    Скриншот

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 00:10 07-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    Действительно странное. Нашёл у себя в тестовых словарях португальский - нет, прописывается как "pt". Да и в списке двухбуквенных кодов вообще нет "po", взгляните сами в langcoder.cc. Что там у вас за словарь такой?

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 01:06 07-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Вот этот словарь - прямая ссылка.
     
    З.Ы. Быстрее качается не через mirrorservice, а напрямую - https://download.kiwix.org/zim/wiktionary/wiktionary_pt_all_novid_2018-07.zim

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 01:10 07-12-2018 | Исправлено: Romul81, 01:18 07-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Несколько вопросов по поводу производительности, если позволите.
     
    1. Как вы смотрите на концепцию распараллеливания задач с целью оптимизации? Прежде всего это касается индексации. Как обычной, так и полнотекстовой. В случае обычной (первоначальной), для простоты можно было бы не заморачиваться с параллельностью в рамках одного словаря, просто одновременно индексировать несколько словарей, каждый в своём процессе, в зависимости от имеющихся в системе процессоров/потоков. Тем более что этот вид индексации не очень требователен по памяти. Кроме того, каждый индекс пишется в свой независимый файл, поэтому нет необходимости синхронизировать эти задачи.
     
    В случае полнотекстовой сложнее. Именно из-за потребления памяти. Но просто для информации, есть ли возможность распараллелить этот вид индексации в контексте одного словаря? Подозреваю, что это достаточно сложно, как в плане создания тасков, так и последующей их синхронизации (пишется-то один файл).
     
    2. Вытекает из первого. Есть ли какая-либо возможность оптимизировать потребление памяти при полнотекстовом индексировании? Ну там flush какой прикрутить или ещё что.. Нынешние значения потребления, конечно, впечатляют. 5GB для Викисловаря - влёгкую. Если бы удалось решить проблему с жором памяти, то, наверное, можно было бы смотреть в сторону распараллеливания и этой задачи. То, что это обеспечило бы кратный прирост производительности по времени её выполнения, думаю, очевидно.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 11:34 07-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81

    Цитата:
    В случае обычной (первоначальной), для простоты можно было бы не заморачиваться с параллельностью в рамках одного словаря, просто одновременно индексировать несколько словарей, каждый в своём процессе, в зависимости от имеющихся в системе процессоров/потоков. Тем более что этот вид индексации не очень требователен по памяти.

    Не требователен он для небольших словарей. Но они и индексируются быстро, нет особой необходимости в распараллеливании. С большими уже сложнее, и без параллельной обработки можно подойти к 4Gb пределу для 32-разрядной версии.

    Цитата:
    В случае полнотекстовой сложнее. Именно из-за потребления памяти. Но просто для информации, есть ли возможность распараллелить этот вид индексации в контексте одного словаря? Подозреваю, что это достаточно сложно, как в плане создания тасков, так и последующей их синхронизации (пишется-то один файл).

    Сложно, да. Не только файл один, ещё и контейнер один, в который набирается полуфабрикат для индексации - найденные слова и ссылки на статьи, в которых они встречаются. И та же самая ситуация - маленькие словари индексируются быстро, а большие жрут до фига памяти.

    Цитата:
    2. Вытекает из первого. Есть ли какая-либо возможность оптимизировать потребление памяти при полнотекстовом индексировании?

    Что смог - уже соптимизировал. Я ведь тоже от такой прожорливости не в восторге.
     
    Да, с багом с определением языка я разобрался. Вот что значит не выкинуть вовремя из кода недоработанную функцию, взамен которой уже написана другая, исправно работающая.
    Доберусь до дома - выложу исправленную версию.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 12:47 07-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Спасибо большое за развёрнутый ответ! И вообще за всё!
    Что бы мы без Вас делали?!
     
    Добавлено:

    Цитата:
    Что смог - уже соптимизировал.

    ...Чисто спекулируя.. Можно было бы использовать временные дампы со сбросом в TEMP и последующим удалением. Но,  -процесс стал бы ещё медленнее; -при аварийном завершении плодились бы кучи мусора. Т.е. надо было бы ещё писать логику соотв. проверки и чистки. Преимущество одно - разгрузка ОП.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 12:53 07-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    Вот правленая версия - goldendict-1.5.0-RC2-338-g6d46fd1(EXE only).7z. Проблемный словарь надо переиндексировать.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 17:06 07-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62

    Цитата:
    Вот правленая версия

    Спасибо большое! Как домой доберусь - соберу из git.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 17:14 07-12-2018
    Nikolai2004



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    логика такая: я осознанно наполнил и отсортировал группы и пользуюсь только ими, в группу "All" не захожу и она мне не мешает. но моей сборкой пользуются другие люди и, выбирая направление перевода, они могут случайно зайти в это неструктурированное "All", в котором свалено всё подряд. именно этого и хотелось бы избежать

    Всего записей: 1523 | Зарегистр. 07-01-2004 | Отправлено: 22:29 07-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nikolai2004
    Не вижу в случайном заходе в группу "All" ничего страшного. Выйти из неё не сложнее, чем зайти.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 23:03 07-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Всё ОК! Собралось и работает как надо.
    Спасибо!

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 16:17 08-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Вопрос по управлению памятью. Обратил внимание, что ОП после завершения индексирования FTS не высвобождается. Более того, в случае конкретного сценария:
    - подключаю большой словарь (wiki, urban, etc.)
    - начинается индексирование для ПТП.
    - захожу в настройки и выставляю лимит, скжем, в 500К заголовков.
    - процесс индексирования прекращается - ОК
    - уже съеденная память НЕ высвобождается.
     
    Вывод - требуется перезапуск, чтоб всё пришло в норму.
     
    Собственно вопрос - можно ли прикрутить освобождение памяти без необходимости перезапуска? Не то, чтобы это очень сложно (перезапустить программу), но не все настолько внимательны, чтоб следить за этим моментом. А объём занимаемой памяти, как вы знаете, может достигать нескольких гигабайтов.
     
    P.S. Проблема актуальна и для обычного (первоначального) индексирования. Когда указывается папка со словарями и запускается процесс. По его окончании потребление памяти остаётся на пиковых значениях, которые были во время индексирования.
     
    Добавлено:
    Abs62
     
    Думаю, нижеописанный глюк не относится к, непосредственно, GoldenDict-у. Тем не менее очень неприятен.  
    Последовательность действий:
     
    - Открываю окно Dictionary Headwords для какого-нибудь словаря.
    - Кликаю мышкой на каком-нибудь заголовке.
    - Фокус перемещается в основное окно, где открывается соотв. статья
     
    Проблема в том, что при последнем действии (перемещении фокуса) происходит активирование меню File, как если бы была нажата комбинация Alt-F в основном окне. Это происходит всегда при выборе заголовка из списка, без исключений.
    Глюк наблюдается только в Arch с KDE (точнее сборка основанная на Manjaro). Qt 5.11.2
    В Ubuntu Budgie на Qt 5.9.5 такого глюка нет.
    Не знаю с чем это может быть связано либо с версией Qt, либо с DE. Может быть такое, что программа эмулирует какое-то сочетание клавиш, которое вызывает появление этого меню в KDE?

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 18:05 09-12-2018 | Исправлено: Romul81, 18:19 09-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81

    Цитата:
    Вопрос по управлению памятью. Обратил внимание, что ОП после завершения индексирования FTS не высвобождается.

    Странно. Под Win при завершении/прерывании индексации память вполне себе освобождается. Какие-то особенности системного менеджера памяти?

    Цитата:
    Может быть такое, что программа эмулирует какое-то сочетание клавиш, которое вызывает появление этого меню в KDE?

    Сам GD - нет, идёт обычная работа через слот-сигнальную систему Qt.
    Вообще говоря, судя по жалобам на github, Arch - самая глюкодромная система из всего линухового зоопарка. А я, увы, по линухам не спец, я с Win и под Win работаю.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 19:40 09-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62

    Цитата:
    Какие-то особенности системного менеджера памяти?  

    Да нет, всё стандартное. Туда мои шаловливые ручки ещё не дотянулись

    Цитата:
    идёт обычная работа через слот-сигнальную систему Qt.  

    Значит виновата его версия. Для верности предположения надо опробовать с другим DE, но с той же версией Qt.

    Цитата:
    Вообще говоря, судя по жалобам на github, Arch - самая глюкодромная система из всего линухового зоопарка.

    Ну, не всё так однозначно Зато всё свежее. Тем более дистр использует репозитории Manjaro stable. А там отстойник где-то двух-недельный. Напрямую из арча ничего не тянется, даже stable-ветка, повторюсь, от Manjaro. Проблемы в основном бывают только с совместимостью оборудования и соотв. драйверами. Но у меня в этом плане всё нормально (более или менее ).
    Тут ведь проблема ещё в том, что баг с памятью наблюдается, также, и на убунте. А как вы понимаете, там всё разное - начиная от версии ядра, заканчивая пакетами и DE. Но память не высвобождает так же.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 20:38 09-12-2018
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Ещё раз попробовал подключить файл enwiktionary-20181110.slob. Для FTS стоит ограничение в 500К, так что этот вид индексации даже не запускался. По завершении процесса - результат. Как видно процесс так и продолжил занимать столько памяти, сколько отъел во время индексирования.
     
    З.Ы. Кстати, язык для этого словаря не определился. Предполагаю потому, что присутствует только один идентификатор. "Пары" как бы и нет.
     


    На счёт бага со списком заголовков вот скриншот, чтоб было понятнее.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 03:54 10-12-2018 | Исправлено: Romul81, 03:56 10-12-2018
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    Насчёт памяти поспрошал у гугля. Вот тута нашёл такое мнение:

    Цитата:
    As far as I know this is a normal behaviour. Your kernel prefers to have the block of memory assigned to a given process in case it wants more memory at some later point in time. If you ran out of memory, it'd be freed and assigned to the process being in need of that memory.

     
    Насчёт бага с меню "FIle" что-то сказать сложно - у меня стоит только старенький Ubuntu на виртуалке, там такое не случается.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 11:35 10-12-2018
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

    Компьютерный форум Ru.Board » Компьютеры » Программы » GoldenDict (часть 2)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru