Ru-Board.club
← Вернуться в раздел «Программы»

» GoldenDict

Автор: CAEman
Дата сообщения: 18.04.2015 18:25
Abs62

Цитата:
Сложно.

А сделать так, чтобы для больших словарей индекс разбивался на несколько файлов, и словарь обрабатывался бы по частям, можно?
Автор: BKSRU
Дата сообщения: 18.04.2015 20:07
GoldenDict на основе сборки 1.5RC475 - (не UI Revolution)
- Download: http://rghost.net/8yD5f7VFb - только exe файл.

Обратите внимание - это не версия UI Revolution. Отладить с ходу такой менеджер не просто. Но сделано все возможное, что бы все на текущий момент работало как положенно. Так, что на ваш страх и риск. В какой то мере это база более серьезного проекта. Хотелось бы, что бы была активность по поводу сбоев и несоответствий в сохранении информации и при каких обстоятельствах происходит.

New: Менеджер журналов истории

Подробности http://forum.ru-board.com/topic.cgi?forum=5&topic=45338&start=140#21
Автор: CAEman
Дата сообщения: 18.04.2015 20:30
BKSRU

Цитата:
Хотелось бы, что бы была активность

Когда начнёте наконец-то раздавать под стандартизованные ОС, тогда и активность появится...
Автор: Romul81
Дата сообщения: 18.04.2015 23:02
Abs62,

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


А почему бы просто не прописать во внутреннем CSS что-то типа:

Код: .dsl_ref {
    font-weight: normal;
    font-style: normal;
    text-decoration: none;
}
Автор: Romul81
Дата сообщения: 19.04.2015 15:12
Abs62,
Вы не могли бы рассказать подробнее как работает механизм fallback для отсутствующих в шрифтах знаков?

Столкнулся с похожей проблемой, которая описана здесь. Как заставить GoldenDict для Windows переходить на следующий шрифт, прописанный в font-family, при отсутствии знака в первом? Кстати, в GoldenDict для Android всё прекрасно работает, в т.ч. со шрифтами, подгруженными по "src: url('file:....ttf');". Встроенный IPA-диапазон для класса .gde тоже переназначается.

Как сделать то же самое в Windows?
Автор: Abs62
Дата сообщения: 19.04.2015 15:54
Romul81

Цитата:
Вы не могли бы рассказать подробнее как работает механизм fallback для отсутствующих в шрифтах знаков?

Этим WebKit занимается, конкретно модуль QWebView. GD просто подготавливает html-страницу и отдаёт её на дальнейшую обработку и отображение в QWebView.
Автор: Romul81
Дата сообщения: 19.04.2015 16:01
Abs62
А чем обуславливается различное поведение мобильного GoldenDict и для Windows?
Мобильный использует в работе другой движок?
Автор: Abs62
Дата сообщения: 19.04.2015 17:00
Romul81
Про потроха мобильного только автор рассказать может, это коммерческая программа с закрытым кодом.
Автор: Romul81
Дата сообщения: 19.04.2015 17:04
Abs62
Т.е., резюмируя, функцию fallback для десктопа реализовать невозможно?
Автор: BKSRU
Дата сообщения: 19.04.2015 17:46
Не думаю, что не возможно. Просто необходимы:
- тестовая словарная карточка с подобной проблемой, что бы знать от чего отталкиваться
- уверенность, что это необходимо
- желание и время
Автор: Romul81
Дата сообщения: 19.04.2015 17:56
BKSRU
Не вопрос. Любая карточка с транскрипцией в IPA-диапазоне.
Устанавливаете в систему, к примеру, шрифты Roboto (IPA-диапазон отсутствует) и Arial Unicode MS. В article-style.css пишете:

Код: body
{
font-family: Roboto, 'Arial Unicode MS';
}
Автор: BKSRU
Дата сообщения: 19.04.2015 18:13
Могу только поставить на заметку, будет время и близкая тема посмотрю, что можно сделать.
У транскрипции есть тег. Почему бы для него не использовать стиль?
Автор: Romul81
Дата сообщения: 19.04.2015 18:21
BKSRU
А на счет необходимо ли.. Универсальных шрифтов, покрывающих все диапазоны, нет. Можно, конечно, жить с Arial Unicode MS (обязательно установленным в систему, чтоб были болд и италик начертания) - но это не лучший выход. Тем более, что никакого велосипеда здесь нет. Fallback - стандартный функционал, реализованный во всех браузерах, а также у сабжа для Андроид.

З.Ы. Транскрипция далеко не всегда находится в теге (и, кстати, мир не ограничен форматом DSL). Плюс к тому, различные значки, пиктограммы, мат. символы и прочие закорючки могут располагаться безотносительно каких-либо тегов.
Автор: BKSRU
Дата сообщения: 19.04.2015 19:02
Установил шрифт, прописал стиль. Пробежал глазами карточки, не заметил проблем.
Автор: Abs62
Дата сообщения: 19.04.2015 19:11
Romul81

Цитата:
Т.е., резюмируя, функцию fallback для десктопа реализовать невозможно?

Пробуйте версию на Qt5, там WebKit посвежее.
Автор: Romul81
Дата сообщения: 19.04.2015 20:44
BKSRU
Признаю, пример не совсем корректен, т.к. "неведомый" механизм fallback заточен на шрифт Arial Unicode MS, а если его нет, то на другие дефолтные юникод-шрифты windows, независимо от того, что прописано в font-family после первого шрифта.

Пример: карточка word. В словаре Cambridge Advanced Learner's Dictionary, 4th Ed. Reader(En-En) эта карточка имеет римскую нумерацию до XIII (именно юникод-символы из диапазона Number Forms, а не просто латинские буквы). Эта же карточка в словаре Macmillan English Dictionary (En-En) в подзаголовке под номером II имеет примеры использования (неправильный - выделенный красным крест - знак 10007 в десятичной кодировке и правильный - выделенную зеленым "галку" - знак 10003). Теперь удаляем Arial Unicode MS из системы. Устанавливаем шрифт Andika. Пример очень характерный, т.к. в этом шрифте знак галки 10003 имеется, тогда как 10007 (крест) отсутствует. Пишем в CSS:

Код: body {
    font-family: Roboto, Andika;
}
Автор: BKSRU
Дата сообщения: 19.04.2015 21:06
Romul81
Смущает, что вы не ставите кавычки у шрифтов.
body {
font-family: 'Roboto', 'Andika';
}
Поверьте нет времени искать глазами проблемы, особенно если и стиль не корректен. Не в первый раз задаете вопросы, знаете как это делать правильно. В общем если актуально то сделайте тестовую карточку.
Автор: Romul81
Дата сообщения: 19.04.2015 21:11
BKSRU
В данном случае кавычки не обязательны и Вы, думаю, об этом знаете.
Автор: BKSRU
Дата сообщения: 19.04.2015 21:13
Однако инспектор показал, что шрифты без кавычек не подхватываются. Может в QT5 иначе.
Автор: Romul81
Дата сообщения: 19.04.2015 21:16
Сейчас специально проверил с кавычками. Изменений, как и предполагалось, нет.
Кстати, на сборке с Qt 541 без кавычек всё прекрасно работает.
Автор: BKSRU
Дата сообщения: 19.04.2015 21:23
Проверить никогда не помешает. Тогда делайте карточку. Почти на год засел за учебники, естестсвенно потерял практику. Но восстанавливаю обычно не долго, если руки доходят.
На QT5 хотел бы перейти. Однако жалобы на скорость как то не вдохновляют. Вот обновленный вебдвижок конечно не помешал бы.
Автор: Romul81
Дата сообщения: 20.04.2015 17:58
BKSRU
Как просили, пример карточки:

http://rghost.net/8Yx4CBzXv

В архиве словарь с карточкой примера (несколько диапазонов юникода) + 6 подгружаемых шрифтов + article-style.css

В QT5 fallback работает, как и положено, для всех 6-ти перечисленных шрифтов в порядке заданного приоритета. Просто сравните с тем, как ведёт себя данная конфигурация на QT4 и всё станет ясно. Также, обратите внимание на то, как карточка отображается без подключенного article-style.css (тут всё всецело зависит от имеющихся системных дефолтных шрифтов - и даже если вы установите в систему Universalia - это не поможет).

Если подытожить, программа на QT4, в том виде, в котором она существует сейчас, в силу отсутствия поддержки полноценной функции fallback, не может позиционироваться ни как полностью портабельное, ни как универсальное (для всех видов письменности) решение. QT5 в этом плане - существенный шаг вперёд. Но...

Поэтому, если Вам удастся решить этот вопрос на QT4 - это будет большое дело.

З.Ы. Шрифты старался подобрать таким образом, чтоб они отличались визуально (bold, italic, serif, sans-serif), хотя шрифтов, отличающихся покрытием больших диапазонов юникода, на самом деле не много, а с "вычурными" стилями практически нет.
Автор: BKSRU
Дата сообщения: 20.04.2015 19:19
Шрифты в систему установил. Стиль подключил. Словарь поставил. Но я не вижу никакой разницы в этой портянке. Особенно на ночь глядя (ночь у нас ).
Нужна всего простейшаяф карточка. Дстаточно одной нормальной строки, с вставкой несколько символов которые не совпадают и все. Что бы я мог переключиться с обычного стиля на необычный и увидеть разницу. Не нужно кучи шрифтов, одного примера достаточно. Мне просто нужно видеть проблему, что бы начать просматривать возможные пути решения.

Добавлено:
Т.е. суть я понимаю. Должна быть строка в которой есть особый символ, которого в шрифте нет и выскакивает зюгма несмотря на попытку Fallback. Ну вот такой карточки и достаточно.
Автор: Romul81
Дата сообщения: 20.04.2015 19:43
BKSRU
Извините, что не расписал подробнее.

Шрифты в систему устанавливать НЕ НАДО! Задача ведь обеспечить универсальное решение, не зависящее от установленных в системе шрифтов. Вы же не будете прилагать к своей сборке специальные шрифты, чтобы пользователь их самостоятельно устанавливал в систему. Но Вы можете придать программе функционал, чтоб она не зависела вообще от системных шрифтов и при этом гарантированно отображала все диапазоны юникода (или предполагала такую возможность).

А порядок следующий:

1. Распаковать новую чистую сборку на QT5
2. Папку GoldenDict из моего архива объединить с этой сборкой
3. Запустить и набрать слово "Юникод" (уже есть в истории)

Результат - это то, что должно быть.
Задача, чтоб Ваша сборка на QT4 отображала статью так же (что не есть по факту).

А 6 шрифтов и разные диапазоны юникода я подготовил именно для облегчения тестов, т.к. в них есть диапазоны, которые пересекаются, а есть, которые уникальные (можно посмотреть в специализированной программе-менеджере шрифтов или, например, использовать плагин для TotalCommander). В этом-то вся и "фишка" функции Fallback, что можно менять очередность следующего подгружаемого шрифта, когда предыдущий "даёт маху". Т.е., подобрав нужную цепочку шрифтов, расположенных в правильной последовательности, можно обеспечить широкий охват диапазонов без потери визуальной стройности и целостности. Как-то так...
Автор: Romul81
Дата сообщения: 21.04.2015 11:57
BKSRU
Я тут погуглил немного на эту тему и пришёл к выводу, что решение проблемы в рамках Qt4 крайне маловероятно (если вообще возможно). Проблема именно в версии движка webkit:

Описание проблемы на qt4.8
Более развёрнуто

Цитата:
So the cause must be in your old WebKit implementation. You may try to update to Qt 5 wich uses WebKit 2.0, like Google Chrome. Qt 4.x uses the old WebKit 1.x versions.

Bugfixing the WebKit code is a very bad idea.

Почему это важно? Простой пример. Система Windows 7 x86 c Office 2010 (т.е. Arial Unicode MS присутствует вместе с кучей других сторонних шрифтов, в которых блок General Punctuation имеется в полном объёме). Словарь "Longman Pronunciation Dictionary (En-En)". Карточка devour.
- Крайняя ночная сборка GoldenDict на Qt 4.8.6. Дефолтная конфигурация (article-style.css не подключен). Вместо знака UNDERTIE - артефакт.
- Крайняя ночная сборка GoldenDict на Qt 5.4.1. Дефолтная конфигурация (article-style.css не подключен). Знак UNDERTIE на месте.

И это не единичный случай. Этот знак в данном словаре встречается 13012 раз.
Какие могут быть варианты решения для Qt4? Только костыли. Можно было бы подгружать какой-то конкретный шрифт по классу в article-style.css. Но в данном словаре транскрипция (а этот знак встречается в транскрипции) не размечена тегом [t]. Также, можно было бы подгржать шрифт только для определённых блоков по @font-face { unicode-range:... }, но движок WebKit такой продвинутый функционал тем более не поддерживает. Остается указать конкретный один шрифт для всего класса body или .gdarticle, что не является гибким решением, т.к. этот шрифт должен присутствовать в системе (чтоб имелись болд и италик начертания) и может иметь свои недочёты (напр. кривые хинтинг и кернинг, межстрочный интервал и т.п.).

В общем, может Вам стоит подумать по поводу перевода своей сборки на Qt5? Там есть свои плюсы и минусы, но, в любом случае, всё развивается и совершенствуется и нет смысла топтаться на месте, пытаясь "впихать невпихуемое".
Как бы там ни было, Вам виднее. В любом случае спасибо.
Автор: CAEman
Дата сообщения: 25.04.2015 12:13
Romul81

Цитата:
А чем обуславливается различное поведение мобильного GoldenDict и для Windows?


Цитата:
Т.е., резюмируя, функцию fallback для десктопа реализовать невозможно?

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

Добавлено:
Romul81

Цитата:
Универсальных шрифтов, покрывающих все диапазоны, нет. Можно, конечно, жить с Arial Unicode MS (обязательно установленным в систему, чтоб были болд и италик начертания) - но это не лучший выход.

Абсолютное большинство шрифтов, устанавливаемых из дистрибутивов современных ОС, являются покрывающими весь диапазон юникода.
Зачем нужно зацикливаться на упомянутом Вами шрифте, к тому же входящем далеко не во все дистр-ы?
Автор: Romul81
Дата сообщения: 25.04.2015 12:39

Цитата:
Абсолютное большинство шрифтов, устанавливаемых из дистрибутивов современных ОС, являются покрывающими весь диапазон юникода.  
Зачем нужно зацикливаться на упомянутом Вами шрифте, к тому же входящем далеко не во все дистр-ы?

Кхм.. Кхм.. Что, простите? Вы это серьёзно? Шрифты из архива проекта Noto от Google, которые весят более 470 МБ в распакованном виде (некоторые с начертаниями), ещё НЕ окончательно поддерживают все блоки юникода. Т.е. все шрифты, в комплексе. А Вы говорите о каком-то одном из большинства шрифте, который якобы покрывает?

И проблема на самом деле не в шрифтах, а в невозможности отобразить специфический контент программой на Qt4, используя функцию fallback, путём прописывания альтернатив с нужным приоритетом в article-style.css. Эта функция не работает на Qt4, в отличие от Qt5 (как уже отмечалось выше).
Автор: CAEman
Дата сообщения: 25.04.2015 19:26
Romul81

Цитата:
Кхм.. Кхм.. Что, простите? Вы это серьёзно? Шрифты из архива проекта Noto от Google, которые весят более 470 МБ в распакованном виде (некоторые с начертаниями), ещё НЕ окончательно поддерживают все блоки юникода. Т.е. все шрифты, в комплексе. А Вы говорите о каком-то одном из большинства шрифте, который якобы покрывает?

Вот: - щёлкнул по почти (т.е. из имеющих знакомое мне название) первому попавшемуся шрифту (сам пользуюсь Liberation, чтобы не говорили, что это избранный шрифт) из установленных с дистр-ом ОС стандартного набора шрифтов.
Каких блоков юникода не хватает?
Если всё есть, то щёлкнуть для Вас по ещё какому-нибудь шрифту?

Добавлено:

Цитата:
И проблема на самом деле не в шрифтах, а в невозможности отобразить специфический контент программой на Qt4, используя функцию fallback, путём прописывания альтернатив с нужным приоритетом в article-style.css. Эта функция не работает на Qt4, в отличие от Qt5 (как уже отмечалось выше).

Т.е. упомянутый Вами вначале Android имел более новое ядро Linux c поддержкой QT5? Или QT вообще не имеет никакого отношения к ядру ОС?
Автор: Romul81
Дата сообщения: 25.04.2015 20:03
CAEman
Могу процитировать Ваши же слова:

Цитата:
Абсолютное большинство шрифтов, устанавливаемых из дистрибутивов современных ОС, являются покрывающими весь диапазон юникода.

Напомню, что юникод, в своей самой первой реализации от 1991г. насчитывал 7161 символов. Актуальная 7-я версия имеет уже 113 021 символ. Что Вы хотели сказать размещая картинку, где русским по белому написано, что данный шрифт имеет 3110 глифов (с перечислением с правой стороны конкретных блоков)? Противоречия не замечаете? Получается, что Вы опровергаете сами себя.

Еще раз, тезисно, во избежание дальнейшего флуда, о том, что я пытаюсь сказать.

1. Не существует шрифтов, содержащих все блоки юникода.
2. Чтоб гарантированно отобразить контент, включающий символы, отсутствующие в задействованном шрифте, необходимо подгрузить другие, имеющиеся в распоряжении шрифты, содержащие эти символы. Этот функционал называется Fallback.
3. Fallback может быть реализован как на уровне программы (браузера), так и ОС в целом.
4. GoldenDict на Qt4 (webkit 1) для Windows полагается в этом плане на механизм Fallback самой ОС (который сам по себе не идеален) и гарантировать отображение всех символов невозможно (даже при наличии установленных в систему соответствующих шрифтов).
5. GoldenDict на Qt5 (webkit 2) корректно отображает все символы, используя имеющиеся системные (или подгружаемые как внешний ресурс) шрифты за счёт улучшенного механизма Fallback реализованном в движке webkit 2, который, в свою очередь, является составной частью пакета Qt5.

Как это работает на линуксах и проч. - я сказать не могу. Выше описанная ситуация имеет отношение исключительно к Windows. Надеюсь, в этот раз я буду правильно понят.

Добавлено:

Цитата:
Т.е. упомянутый Вами вначале Android имел более новое ядро Linux c поддержкой QT5? Или QT вообще не имеет никакого отношения к ядру ОС?

Я представления не имею как оно там устроено на Андроиде и имеет ли отношение к чему-либо QT, но я знаю, что Fallback работает корректно, в т.ч. руководствуясь приоритетом шрифтов, прописанных в article-style.css.
Автор: CAEman
Дата сообщения: 25.04.2015 20:29
Romul81
Про виндоусы и пр. нестандартные ОС ничего сказать не могу (поскольку не являюсь ни маргиналом, использующим нестандартизированные ОС, ни компьютерщиком, ни его "дойной коровой", которой он такую ОС "впарил"), хотя и слыхал, что в виндоусе вообще с юникодом проблемы: используется какая-то своя нестандартная кодировка.
Но Вы же писали ранее, да и сейчас повторили

Цитата:
1. Не существует шрифтов, содержащих все блоки юникода.

не про степень заполнения символами каждого блока, а про наличие самих блоков в шрифте. По заполнению же на упомянутом шрифте картина следующая: от 1 % до 100 % ...

Добавлено:

Цитата:
Как это работает на линуксах и проч. - я сказать не могу. Выше описанная ситуация имеет отношение исключительно к Windows.


Цитата:
Я представления не имею как оно там устроено на Андроиде и имеет ли отношение к чему-либо QT, но я знаю, что Fallback работает корректно, в т.ч. руководствуясь приоритетом шрифтов, прописанных в article-style.css.

Т.е. в стандартизованных ОС всё работает корректно (как и подобает таким ОС), а проблема, как обычно, исключительно в Виндоус (кстати, Linux, Android и пр. здесь без проблем пишутся латиницей, а вот Виндоус лучше писать кириллицей, в противном случае оно превращается в ссылку, которую Вы и не собирались приводить...). Поэтому простые пользователи и не разбираются, как что работает "на линуксах и проч.", а вот пользователям исключительно Виндоус приходится во всём этом разбираться (хотя все эти проблемы решаются элементарно)...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156

Предыдущая тема: Total video converter 3.14 ошибка конвертации


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.