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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

    Цитата:
    В смысле атрибут с одинарной кавычкой внутри в одинарных кавычках? А так кто-то делает?  

    <a href="sound://o'connor.spx"> но не <a href='sound://o"connor.spx'>. Это нельзя сделать по [^\"'] (как на данный момент в оф. версии).
     
    Выход - создавать блоки-регулярки и строить на них логику. Примерно так, как в нынешнем тестовом варианте, но ширше и глубже.
     
    Либо забить и не проверять зеркальность кавычек и не допускать одинарную кавычку внутри значения атрибута.

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



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

    Цитата:
    Это нельзя сделать по [^\"'] (как на данный момент в оф. версии).

    Ну да, но можно по [^>](\\2) с отключённой жадностью. Главное, чтобы внутренние кавычки не совпадали с окаймляющими. Думаю, этого достаточно.

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 00:47 15-11-2016
    Romul81



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

    Цитата:
    Ну да, но можно по [^>](\\2) с отключённой жадностью.

    Тогда правильнее так: [^">](\\2). Нежадная регулярка палка о двух концах. На коротких стрингах ещё куда не шло. А на длинных - плохая производительность (сам алгоритм это предполагает). Вот, например стринг из реального словаря:

    Код:
    <a class="sound audio_play_button pron-uk icon-audio" data-src-mp3="/media/english/uk_pron/b/ben/bend_/bend__gb_1.mp3" data-src-ogg="/media/english/uk_pron_ogg/b/ben/bend_/bend__gb_1.ogg" style="cursor: pointer" valign="top" otitle=" pronunciation English" href="sound://media/english/uk_pron/b/ben/bend_/bend__gb_1.mp3" type="sound">

    Регулярка:

    Код:
    (<\s*?(?:a|area)(?=\s)[^>]*?[\s"']href\s*?=)\s*?(["'])sound://([^">]+?)\2

    705 попыток до совпадения.
    Но, похоже, это реально единственный вариант.

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



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

    Цитата:
    Тогда правильнее так: [^">](\\2).

    А двойная кавычка внутри одинарных - допустимый вариант или нет?

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 01:07 15-11-2016
    Romul81



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

    Цитата:
    А двойная кавычка внутри одинарных - допустимый вариант или нет?

    Нет, по спецификации RFC она не может находиться в URI. Должна писаться как &quot;
    З.Ы. как и остальные HTML Escape Characters
     
    Добавлено:
    Внёс изменения, которые мы с Вами тут обсуждали. Добавил вторую гуруппу для закрытия финальной кавычки в заменах (кроме wordCrossLink, т.к. там её нужно закрывать уже после тестирования 4-й группы).  
    wordCrossLink и audioRe в нежадном режиме. Убил двойную кавычку во всех значениях атрибутов, кроме wordCrossLink - если что, добавьте по своему усмотрению.
    Возможно, где-то ещё по синтаксису нужно подправить.

    Всего записей: 1327 | Зарегистр. 03-03-2008 | Отправлено: 01:10 15-11-2016 | Исправлено: Romul81, 01:12 15-11-2016
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    Ладушки, завтра будем посмотреть.

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 01:55 15-11-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Вероятно, стоить добавить в фильтр протокол mailto по типу:

    Код:
    (?!\\s*\\b(?:(?:bres|https?|ftp)://|(?:data|javascript|mailto):))

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    А разве скрипты/таблицы стилей/картинки грузятся по mailto? У нас же такая фильтрация только там, в обычных <a> и так обрабатываются только ссылки типа entry:// и sound://.

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 14:43 15-11-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Конечно, Вы правы. Это имело бы смысл в Stardict, например, где entry:// отсутствует. Появление этого протокола в стилях и атрибутах src крайне маловероятно.  
     
    В общем, когда очередь дойдёт до Stardict надо этот момент не запамятовать.
     
    Добавлено:
    P.S. Сейчас глянул, как там в Stardict дела на этот счёт обстоят - да, фильтров никаких нет.
    Но заметил другой интересный момент:

    Код:
      switch( type )
      {
        case 'x': // Xdxf content
        ...

    Так значит switch case может работать с типом данных char.

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



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

    Цитата:
    Так значит switch case может работать с типом данных char.

    С целыми он работает. И с типами, которые к ним приводятся. Вот как это формулируется в MSDN:

    Цитата:
    Указанное выражение (в примере синтакисиса — expression) должно иметь целочисленный тип или же тип класса, для которого существует однозначное преобразование к целочисленному типу.


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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 15:32 15-11-2016
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    На сей раз вроде как всё работает. Пробуйте - GoldenDict-test3.7z. Код всё там же.

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 18:10 15-11-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Протестировл. Вроде бы, действительно всё работает и у Наташи Ростовой трусы не падают
    Пока по крайней мере.
    Правда, какого-либо существенного увеличения скорости не заметил (смотрел на timeline в инспекторе). Оно и понятно - основная нагрузка ложится на браузер и несколько регулярок вместе со слегка оптимизированным алгоритмом не могут существенно повлиять на быстродействие. Кол-во узлов-node легко может превысить 100 000 при нескольких подключенных словарях. Формат позволяет использовать чуть ли не оригинальный HTML, выкачанный с web, чем создатели словарей и пользуются. И каждый считает необходимым певесить какое-нибудь правило CSS на звёздочку, "чтоб было красиво", не заботясь о том, как это отразится на производительности.
     
    Но приятно от сознания того, что алгоритм стал умнее и гибче. Так победимъ!
    Спасибо большое!
     
    З.Ы. Наверное, стоит потестировать ещё, и если всё нормально, обновлять официальную версию. Как считаете?

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



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

    Цитата:
    З.Ы. Наверное, стоит потестировать ещё, и если всё нормально, обновлять официальную версию. Как считаете?

    Ну да. У вас же вроде как много mdx-словарей должно быть, погоняйте на них. И если всё путём, маякните.

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 00:27 16-11-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Проверил инлайн скрипты - всё отлично. JavaScript сам подключает скрипт по пути ресурса, вычисленного по CSS.
    Код из инспектора:

    Код:
    <script>(function() {var l=document.getElementsByTagName("link");var r=/drae.css$/;for(var i=l.length-1;i>=0;i--)with(l[i].href){var m=match(r);if(m&&l[i].id=="drae"){document.write('<script src="'+replace(r,"drae.js")+'"type="text/javascript"async><\/script>');break;}}}())</script>

    И за ним тег <script, прописанный методом document.write:

    Код:
    <script src="bres://ea321c8e2730d096a33b3df0ade72418/drae.js" type="text/javascript" async=""></script>


    Цитата:
    И если всё путём, маякните.

    ОК. На выходных, наверное.
    Спасибо ещё раз!

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не получается подключить онлайн словарь http://dict.catbo.net/#eo/ru/
    Подскажите адрес, который нужно ввести в GoldenDict, чтобы он искал слова
    Пробовал http://dict.catbo.net/#eo/ru/%GDWORD%   не работает

    Всего записей: 101 | Зарегистр. 16-05-2008 | Отправлено: 11:34 17-11-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
     
    Проверил. Подключил более 60-ти словарей - солянка ещё та. В ресурсах куча всего вплоть до JQuery.  Количество DOM-узлов - более полумиллиона. "Холодный" запуск занял более 3-х минут (когда ресурсы браузер подгружает не из кеша). Работать так, конечно, не возможно, но для теста пойдёт.  
    Вывод - всё грузится, подключается и воспроизводится. Единственный фейл был с CSS одного словаря. Посмотрел код, а там:

    Код:
    <link href="//WordReference_Styles/flyme.css" rel="stylesheet" type="text/css" />
    flyme.css рядом, естественно, не увиделся. Но даже он подключился, когда я положил его в подпапку WordReference_Styles, несмотря на получившийся двойной слэш:

    Код:
    <link href="bres://f8c29f2bcd2bb31df90af22144363ab7//WordReference_Styles/flyme.css" rel="stylesheet" type="text/css">

    В общем, думаю можно обновлять основную версию.
    Спасибо!

    Всего записей: 1327 | Зарегистр. 03-03-2008 | Отправлено: 23:30 20-11-2016 | Исправлено: Romul81, 01:27 21-11-2016
    Abs62



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

    Цитата:
    В общем, думаю можно обновлять основную версию.

    Ладушки, так и сделаем.

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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 23:54 20-11-2016
    ramix



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Подскажите, пожалуйста, какова логика поиска вот на этом участке кода:
     
    (отст[']а[/']ть[p]*[/p] [p]perf[/p]) от вр[']е[/']мени
     
    Почему в режиме FTS ("Слова точно") надо устанавливать количество промежуточных слов = 1, чтобы сочетание "отстать от времени" нашлось?
     
    Я правильно понимаю, что в GD при FTS-индексации 1) пометы ([p]...[/p]) не выбрасываются и учитываются при поиске; 2) но астериск (*) всё же выбрасывается; 3) круглая скобка ) выбрасывается; 4) а тег "perf" в данном случае учитывается как слово?
     
    Что интересно, у Lingvo x5 (которая вообще не индексирует теги и скобки) ситуация в таких же условиях требует выставления почему-то аж 3 других слов между словами запроса (в настройке «Ограничивать расстояние»).

    Всего записей: 968 | Зарегистр. 19-06-2006 | Отправлено: 12:59 24-11-2016
    Abs62



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

    Цитата:
    Я правильно понимаю, что в GD при FTS-индексации 1) пометы ([p]...[/p]) не выбрасываются и учитываются при поиске; 2) но астериск (*) всё же выбрасывается; 3) круглая скобка ) выбрасывается; 4) а тег "perf" в данном случае учитывается как слово?

    Правильно. Вот кусочек из кода с перечнем выбрасываемых тегов:

    Код:
        static QString stripTags[ stripTagsNumber ] =
                                                      {
                                                        "s",
                                                        "url",
                                                        "!trs",
                                                        "video",
                                                        "preview"
                                                      };
     



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

    Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 13:34 24-11-2016
    alexdyn

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, пожалуйста, переделать словарь из .lsd в .dsl  
    http://lingvoda.ru/dictionaries/dictInfo_window.asp?dictId=98
     
    В этой ветке уже было такое сообщение, там есть ссылка на словарь переделанный, но она не открывается.

    Всего записей: 9 | Зарегистр. 03-09-2014 | Отправлено: 12:45 26-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