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

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

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

Maz (23-02-2017 11:53): GoldenDict (Часть 2)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249

   

slech



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




 
Актуальная версия 1.5.0:
Windоws RC2-36 Qt 4.8.6 или Qt 5.6.2, последний EXE-файл: goldendict-1.5.0-RC2-50-g2fe314a(EXE only).7z.
Плагин dsengine.dll для Qt 5.6-based версии на Windows XP: dsengine_5.6.1_for_XP.7z
MacOSX RC2-36 (Qt 562) (рекомендуется для Mavericks & Yosemite); RC 483 (Qt 532) (рекомендуется для Mountain Lion); RC 425 (Qt 486)
 
GoldenDict — новая словарная программа, обладающая следующими особенностями:  
 
  • Графический интерфейс на основе табов, для создания которого использована библиотека Qt;
  • Интеграция с html-движком WebKit для корректного представления материалов в html-формате;
  • Поддержка подключения словарей в форматах: Babylon (.BGL), StarDict (.ifo/.dict./.idx/.syn), Dictd (.index/.dict(.dz)), ABBYY Lingvo (.dsl тексты и аудиоматериалы .lsa/.dat, .lsd - только в Android), XDXF, AARD, 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

  • Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 11:34 26-04-2009 | Исправлено: Maz, 11:48 23-02-2017
    Romul81



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

    Код:
    <link rel="stylesheet" type="text/css" href="bres://021d57a62d4ad219b8da11901491f470/\">
    <script src="bres://021d57a62d4ad219b8da11901491f470/bres://021d57a62d4ad219b8da11901491f470/\"></script>

    Так работают замены в указанных мною выше строках кода. Понятно, что изначальная задумка была корректно отрабатывать атрибуты без кавычек. Но по факту не работает. Просто никто не заморачивается и ставит значения атрибутов в кавычки. Но тогда для чего вообще нужен этот блок?.. Только занимает вычислительные ресурсы, пытаясь обработать каждый <link> и <script> в каждом из подключенных словарей.
     
    По поводу регулярок более уверен. Хотя, конечно, надо тестировать. Например, заметил что в предложенном мною варианте в 20-й строке должно быть  "\\1bres://" + id + "/\\2" вместо "\\1\"bres://" + id + "/\\2\""

    Всего записей: 1327 | Зарегистр. 03-03-2008 | Отправлено: 23:34 30-10-2016
    Abs62



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

    Цитата:
    Все значения атрибутов без кавычек превратились в это:

    Я больше скажу, практически весь парсинг ссылок в GD заточен под наличие кавычек. Без них будет глючить повсеместно, не только в .mdx. Так что тут имеет смысл писать универсальную регулярку, закавычивающую такие линки. Только я в них не слишком-то разбираюсь.
    Кстати, парсить ссылки на скрипты в .mdx надо аккуратно. Там встречаются динамические линки, которые трогать нельзя, их другой скрипт после загрузки статьи преобразует. Взгляните дальше по коду, там как раз такая проверка и идёт.

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

    Всего записей: 6079 | Зарегистр. 22-10-2005 | Отправлено: 10:12 31-10-2016
    Romul81



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

    Цитата:
    ...Так что тут имеет смысл писать универсальную регулярку, закавычивающую такие линки....

    ОК, я потом гляну другие модули. Может, удастся найти общие подходы.

    Цитата:
    Взгляните дальше по коду, там как раз такая проверка и идёт.

    Да, я помню, Вы уже чинили этот момент. А тот вариант, который в изменённом мною блоке - рассчитан только на незакавыченное свойство атрибута src.

    Всего записей: 1327 | Зарегистр. 03-03-2008 | Отправлено: 11:18 31-10-2016
    Nikolai2004



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

    Всего записей: 1523 | Зарегистр. 07-01-2004 | Отправлено: 11:51 31-10-2016
    jyra2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, пожалуйста: нужно пожать словарь .dict в .dz.
    Из двух ссылок в шапке
    Цитата:
    Как сжимать словари в формат .dz для использования в GoldenDict :: DictZip 1.12.1 (latest) :: Оболочка DictUI
    рабочая одна - на DictZip, который я и скачал.
    "Как сжимать" - нет вообще.
    Подскажите как из командной строки с этим DictZip"ом работать, или есть еще программы на винде? Весь инет излазил - нет информации "Как сжимать"...

    Всего записей: 97 | Зарегистр. 05-06-2009 | Отправлено: 18:51 31-10-2016 | Исправлено: jyra2000, 19:05 31-10-2016
    Abs62



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

    Цитата:
    Подскажите как из командной строки с этим DictZip"ом работать

    "dictzip имя_словаря" - сжать.
    "dictzip -d имя_сжатого_словаря" - разжать.
    "dictzip -h" - список ключей.

    Цитата:
    Весь инет излазил - нет информации "Как сжимать"...  

    Первая же ссылка в гугле по запросу "dictzip как сжимать".


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

    Всего записей: 6079 | Зарегистр. 22-10-2005 | Отправлено: 19:57 31-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Почитал документацию по QRegExp. Ясно одно. Синтаксис достаточно бедный и мои регулярки не подходят. Жадность можно менять только через setMinimal().
    Пошёл курить дальше.

    Всего записей: 1327 | Зарегистр. 03-03-2008 | Отправлено: 22:21 31-10-2016
    jyra2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Извините, неправильно выразился. Должно быть так: "Весь инет излазил - нет информации на русском "Как сжимать"... "
    Мне просто нужна краткая инструкция "как сжимать в dictzip", никогда с командной строкой не работал.
    Вот конкретно:
    1. положил файл dictzip.exe в папку D/dictzip/ и туда же словарь slovar.dict
    2.Пуск -> Выполнить, ввести cmd.exe
    3. Дальше что конкретно ввести, чтобы словарь запаковался?

    Всего записей: 97 | Зарегистр. 05-06-2009 | Отправлено: 22:36 31-10-2016
    Abs62



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

    Код:
    D:
    cd D:\dictzip
    dictzip slovar.dict

    Или "dictzip -k slovar.dict", если есть желание сохранить исходный словарь, без этого ключа он будет стёрт.

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

    Всего записей: 6079 | Зарегистр. 22-10-2005 | Отправлено: 22:51 31-10-2016
    lyolik r

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

    Цитата:
    Мне просто нужна краткая инструкция "как сжимать в dictzip", никогда с командной строкой не работал.  

     
    Командная строка и не нужна.  
    Скопируйте dictzip.exe в папку со словарем, и перетащите мышкой словарь поверх файла dictzip.

    Всего записей: 461 | Зарегистр. 26-05-2012 | Отправлено: 22:59 31-10-2016 | Исправлено: lyolik r, 23:05 31-10-2016
    monsoon 3



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли хоткеи для следующего/предыдущего поиска внутри карточки, вызываемого по Ctrl+F?  
    В справке по комбинациям клавиш их вроде нет. Как понял, все остальные хоткеи, кроме двух доступных в параметрах, заложены в коде?
    Можно ли добавить? Раз F3 занята вызовом настройки словарей, тогда м.б. Alt+N для след. поиска и Alt+P - для предыдущего?

    Всего записей: 84 | Зарегистр. 07-04-2016 | Отправлено: 09:35 01-11-2016
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    monsoon 3
    При открытом поиске работают стандартные F3/Shift-F3.

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

    Всего записей: 6079 | Зарегистр. 22-10-2005 | Отправлено: 09:53 01-11-2016
    monsoon 3



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Хм... сорри. Помню, что у меня закрывалось окно поиска по F3. Теперь пробую, все работает.  
     
    Добавлено:
    Разобрался. Чаще всего вызывал GD из anki. Для последней использую скрипт ahk с хоткеем F3. Класс QWidget оказался у обеих программ, поэтому ограничения только на него оказалось недостаточно и скрипт срабатывал в обеих программах.

    Всего записей: 84 | Зарегистр. 07-04-2016 | Отправлено: 10:12 01-11-2016 | Исправлено: monsoon 3, 14:05 01-11-2016
    jyra2000

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62, lyolik r - Большое спасибо, оба метода работают!
     

    Всего записей: 97 | Зарегистр. 05-06-2009 | Отправлено: 16:20 01-11-2016
    menteith

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как конвертировать словарь Oxford Advanced Learner's Dictionary, 9th Edition (En-En) для работы с GoldenDict? Я хочу, чтобы загрузить этот словарь в http://forum.ru-board.com. У меня также есть ИСО Langenscheidt RUS-Pol, POL-RUS (новейший с 2011 года).
     
    Извините за мой плохой русский язык.

    Всего записей: 43 | Зарегистр. 24-12-2015 | Отправлено: 21:05 04-11-2016
    sikemo

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

    Цитата:
    Как конвертировать словарь Oxford Advanced Learner's Dictionary, 9th Edition (En-En) для работы с GoldenDict?

     
    если файл в dsl-формате, он будет работать в GoldenDict

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 22:07 04-11-2016
    menteith

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В Program Files\OALD9\data меня есть:
     
        oup-ddf.ddf
        oup_en-dic.lld
        oup_en-dic.mbx
        oup_en-dic.wbx
        oup_en-idx.lld
        oup_en-ilu.lld
        oup_en-phr.ftx
        oup_en-phr.lld
        oup_en-pic.lld
        oup_en-pii.lld
        oup_en-toi.lld
        oup_en-top.lld
        oup_en-top.rel
        oup_en-tot.dat
     
    Как преобразовать их в dsl-формате?

    Всего записей: 43 | Зарегистр. 24-12-2015 | Отправлено: 22:25 04-11-2016
    ewild

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    menteith
    Возможно для обсуждения такого рода задачи более подходящей будет тема:
    Пользовательские словари для Lingvo
    где обсуждаются вопросы, связанные с созданием словарей формата DSL.
     
    Добавлено:
    При этом данный словарь уже конвертирован:
    Oxford Advanced Learner’s Dictionary 9th edition (eng-eng)

    Всего записей: 1194 | Зарегистр. 13-08-2005 | Отправлено: 10:55 05-11-2016 | Исправлено: ewild, 11:06 05-11-2016
    menteith

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

    Всего записей: 43 | Зарегистр. 24-12-2015 | Отправлено: 18:12 05-11-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    По поводу оптимизации блока filterResource mdx-модуля.
    Я, конечно не ахти как во всём этом разбираюсь (в плане методов Qt и их эффективности), но мне кажется, что в плане логики обработки неэффективность заключается в том, что вся статья неоднократно "шерстится" регулярками. Именно вся статья (которые в Mdict могут быть очень большими). Проблема не только и не столько в самих регулярках, а в логике обработки. Хотел бы предложить несколько другой подход.
     
    Уверен, Вы в курсе, что в Qt существует класс QStringList. Так вот, идея в том, чтоб по стрингу article проходить только один раз регуляркой, например такой:

    Код:
    (<\s*(a(?:rea)?|link|script|img)\s+[^>]*>)
    (в жадном варианте), захватывая все совпадения в list. При том, вторая группа захватывает сам тег, что может использоваться для последующего теста при итерации.
    Далее, этот лист итерируется и обрабатывается по switch case, к примеру (в зависимости от 2-й группы-тега). Т.е. регулярки проверяются уже только на соответствие элементам листа. Не знаю, какой метод здесь лучше применять - Вам виднее, но в классе есть всё необходимое для этого - filter(const QRegExp & rx) const, replaceInStrings(const QRegExp & rx, const QString & after) и т.д.
    Итерацию можно было бы делать от конца к началу, делая замены по pos, чтоб позиция не сбивалась - ну это так, пальцем в небо, может есть более простые решения. Думаю, основная идея понятна.
     
    Если напишете каркас блока, я бы мог подсобить с регулярками (чем могу, как говорится)). Если опыт окажется удачным, то можно перенести ту же логику в другие модули.
    За скобками остались вопросы, касающиеся внутренней кухни Qt - что по факту работает быстрее? Стоит ли подгружать новый класс из-за этого? На сколько быст switch case? Может есть другой способ захватить в массив все вхождения за один проход и итерировать подобным образом?.. Тут нужен неслабый практический опыт программирования под Qt...
     
    В общем, Вам виднее.
     
    З.Ы. А что касается вот этого, то это, конечно же, костыль, решающий одну частную ситуацию. В содержимое <script></script> вообще лезть не надо. Для этого нужно вообще исключить паттерн <script>.*</script> (в нежадном варианте) из обработки (по индексу или ещё как-то).

    Всего записей: 1327 | Зарегистр. 03-03-2008 | Отправлено: 03:55 07-11-2016
       

    Страницы: 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 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249

    Компьютерный форум Ru.Board » Компьютеры » Программы » GoldenDict (Часть 1)
    Maz (23-02-2017 11:53): GoldenDict (Часть 2)


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru