New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Некорректность отображения текста на иврите

Сообщаем о найденных ошибках сюда

Re: Некорректность отображения текста на иврите

Postby Abs62 » Sat Jul 06, 2013 9:55 pm

Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Re: Некорректность отображения текста на иврите

Postby Michael72 » Sun Jul 07, 2013 5:32 am


Работает.
Проблема №4 решена, проблема №3 - нет.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Некорректность отображения текста на иврите

Postby Abs62 » Sun Jul 07, 2013 7:09 am

Michael72 wrote:Проблема №4 решена, проблема №3 - нет.

Добавьте в qt-style.css нужный шрифт для "MainWindow #historyList".
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Некорректность отображения текста на иврите (проблема №4)

Postby Michael72 » Tue Jul 09, 2013 12:56 pm

Проблема №4 решена только для словарей в формате DICT. Для словарей формата StarDict и Sdictionary эта проблема остаётся не решённой:

goldendict3.jpeg
GoldenDict, версия 1.5.0-RC-69-ge80d3aa. Для словарей DICT, StarDict и Sdict
goldendict3.jpeg (128.74 KiB) Viewed 18726 times

А также эта проблема не решена для Словарей Он-Лайн Wikipedia:

goldendict4.jpeg
GoldenDict, версия 1.5.0-RC-69-ge80d3aa. Для Hebrew Wikipedia
goldendict4.jpeg (13.17 KiB) Viewed 18726 times

Наличие в тексте слова на английском языке (cruiser) явилось причиной сильного искажения текста. Текст должен отображаться следующим образом:

Wikipedia.jpeg
Словарь Он-Лайн Hebrew Wikipedia
Wikipedia.jpeg (12.58 KiB) Viewed 18726 times

Шаги для воспроизведения проблемы
Словарь: "Hebrew-Russian Dictionary" (StarDict), "Hebrew-Russian Dictionary" (Sdictionary)
Действия: В поле "Искать" напечатайте "אשרה (2)" и нажмите на Enter.
Для воспроизведения проблемы со Словарём Он-Лайн Hebrew Wikipedia в поле "Искать" напечатайте "סיירת (אונייה)" и нажмите на Enter.
Last edited by Michael72 on Fri Aug 29, 2014 11:45 pm, edited 1 time in total.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Некорректность отображения текста на иврите

Postby Abs62 » Tue Jul 09, 2013 5:39 pm

Ох уж эти мне левосторонние языки. :)
Насчёт википедии есть проблема - отдавая статью, она, ЕМНИМС, не указывает ни направление текста, ни язык.
Насчёт остального будем посмотреть. Только упомянутый sdict-овский словарь всё равно кривой. У него входной язык указан как "iw", а такого кода в стандарте не существует. Код иврита - "he".
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Re: Некорректность отображения текста на иврите

Postby Michael72 » Tue Jul 09, 2013 7:43 pm

Abs62 wrote:Ох уж эти мне левосторонние языки. :)
Насчёт википедии есть проблема - отдавая статью, она, ЕМНИМС, не указывает ни направление текста, ни язык.

Я посмотрел исходный код страницы и обнаружил следующий тэг:
Code: Select all
<div id="mw-content-text" lang="he" dir="rtl" class="mw-content-rtl">

Атрибут dir="rtl" указывает на направление справа налево. Именно этот атрибут обеспечивает правильное отображение текста.
Abs62 wrote:Только упомянутый sdict-овский словарь всё равно кривой. У него входной язык указан как "iw", а такого кода в стандарте не существует. Код иврита - "he".

sdict-овский словарь есть возможность переделать. Вот словарь с правильными указателями языка: "Hebrew-Russian Dictionary" (Sdictionary)

Решение проблемы №4 для словарей в формате DICT реализована неверным способом. Проблема остаётся. Слово, которое состоит из неивритских символов располагается правильно, слева от предшествующего ему ивритского слова, но само оно претерпевает зеркальный переворот, или другими словами, отображается по правилам написания справа налево. Вот как сейчас у GoldenDict:

goldendict5.jpeg
GoldenDict, версия 1.5.0-RC-69-ge80d3aa. Для словаря DICT.
goldendict5.jpeg (135.18 KiB) Viewed 18726 times

Вот как должно быть:

gnome-dictionary3.jpeg
GNOME Dictionary, версия 3.6.0
gnome-dictionary3.jpeg (30.57 KiB) Viewed 18726 times

Из скрин-шотов видно, что у GoldenDict вместо "мэрхак" отображается "кахрэм".

Шаги для воспроизведения проблемы
Словарь: "Russian-Hebrew Dictionary" (DICT)
Действия: В поле "Искать" напечатайте слово "расстояние" и нажмите на Enter.
Last edited by Michael72 on Fri Aug 29, 2014 11:48 pm, edited 1 time in total.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Некорректность отображения текста на иврите

Postby Abs62 » Wed Jul 10, 2013 2:26 pm

Пробуем - goldendict-1.5.0-RC-70-gc1cfbae(EXE only).7z - 996.60 KB
Чтобы механизм работал, языки словаря должны быть заданы правильно. Если GD не знает язык, он использует умолчательное направление текста, слева направо.
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Re: Некорректность отображения текста на иврите

Postby Michael72 » Thu Jul 11, 2013 8:22 am

Abs62 wrote:Пробуем - goldendict-1.5.0-RC-70-gc1cfbae(EXE only).7z - 996.60 KB
Чтобы механизм работал, языки словаря должны быть заданы правильно. Если GD не знает язык, он использует умолчательное направление текста, слева направо.

Теперь проблема №4 решена полноценно для:
  • Sdictionary словарей
  • DSL словарей
  • Словарей Он-Лайн
Для Babylon Glossary возможности проверить пока не нашёл.
Для словарей в формате DICT и StarDict проблема остаётся не решённой. Предлагаю научить GoldenDict узнавать язык для каждой строки отдельно по первому алфавитному символу. Примерно так себя ведёт текстовый редактор Kate. Стоит появиться в начале строки первому алфавитному символу не из ивритского диапазона символов [\u05D0-\u05EA] как редактор тут же переключается на отображение всей строки как текста с написанием слева направо. Свой алгоритм мне легче выразить на языке JavaScript:
Code: Select all
string=string.replace(/^[\x00-\x40\x5B-\x60\x7B-\x7F]+/, '');  // удаление в начале строки неалфавитных символов
if (string.charCodeAt(0)>1487&&string.charCodeAt(0)<1515) lang="he"; // если первый символ в диапазоне [\u05D0-\u05EA], то язык he

По большому счёту в данном случае нужно научить узнавать не конкретный язык, а является ли первый алфавитный символ из алфавита языков с написанием справа налево, т.е. не только иврит, но и другие. Мне кажется тяжело разобраться со всеми такими языками, но тогда хотя бы для двух, где это точно так: иврит и арабский.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Некорректность отображения текста на иврите

Postby Abs62 » Thu Jul 11, 2013 1:57 pm

Michael72 wrote:Для словарей в формате DICT и StarDict проблема остаётся не решённой.

Для DictD и Stardict языковая пара задаётся в названии файлов. Двух- или трёхбуквенными кодами через дефис.
То бишь не "Russian-Hebrew Dictionary.dict", к примеру, а "Ru-He_Russian-Hebrew Dictionary.dict".
В Stardict ту же операцию можно провернуть через имя словаря в .ifo.
Michael72 wrote:Предлагаю научить GoldenDict узнавать язык для каждой строки отдельно по первому алфавитному символу.

Да научить-то не проблема, в списках и заголовках вкладок и главного окна именно этот алгоритм и используется. Вопрос в том, насколько это корректно и к скольким глюкам может привести. Для списков и заголовков просто другого выбора нет - они работают сразу на все словари, а не на какой-то один с известными языками.
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Re: Некорректность отображения текста на иврите

Postby Michael72 » Sat Jul 13, 2013 9:23 am

Abs62 wrote:Да научить-то не проблема, в списках и заголовках вкладок и главного окна именно этот алгоритм и используется. Вопрос в том, насколько это корректно и к скольким глюкам может привести.

Интересный вопрос.
В данный момент при таком подходе, когда GoldenDict отображает всю словарную статью в соответствии с тем языком, который она для неё определила, решение проблемы №4 выглядит всё таки неполноценным. Есть случаи, когда в словарной статье могут быть комментарии или примеры. Эти комментарии могут приводиться не на том языке, который GoldenDict определяет для всей словарной статьи. Приведу пример на скрин-шоте:

goldendict6.jpeg
GoldenDict, версия 1.5.0-RC-70-gc1cfbae (открыт с помощью Wine). Для словаря DICT.
goldendict6.jpeg (194.15 KiB) Viewed 18726 times

На скрин-шоте видно два варианта отображения одной и той же словарной статьи. Сверху - это тот вариант, когда в кодовом имени словаря (имена файлов .index, .dict) присутствует указатель исходного и целевого языков: rus-heb. Внизу - это этот же словарь, но в кодовом имени словаря отсутствует указание на исходный/целевой язык, понятное для GoldenDict. В верхней словарной статье наблюдается некорректное отображение русского текста. Теперь скрин-шот одного из DICT-клиентов:

Xfce4-dict1.jpeg
Xfce4 Dictionary, версия 0.6.0.
Xfce4-dict1.jpeg (33.64 KiB) Viewed 18726 times

Я думаю, что не стоит приводить скрин-шоты других DICT-клиентов или аналогичных словарей, потому что сам принцип работы этих словарей можно увидеть из предыдущих скрин-шотов. У GNOME Dictionary отображение данной словарной статьи идентичное, а для StarDict мне лень создавать новый словарь в этом формате. Я делаю вывод, что в настоящий момент поведение GoldenDict уникальное, отличное от общепринятого. Если GoldenDict откажется от того алгоритма, который он использует сейчас и это приведёт к каким-либо глюкам, то я думаю, что эти глюки будут общими для всех словарей и тогда это задача для автора словаря, чтобы привести свой словарь в надлежащий вид.

Шаги для воспроизведения проблемы
Словарь: "Русско-ивритский словарь: Рыба и морепродукты" (DICT)
Действия: Переименуйте файл rushebfi.dict.dz в rus-heb_fi.dict.dz, а rushebfi.index в rus-heb_fi.index. В поле "Искать" напечатайте "лосось стальноголовый" и нажмите на Enter.
Last edited by Michael72 on Fri Aug 29, 2014 11:52 pm, edited 1 time in total.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

PreviousNext

Return to Ошибки

Who is online

Users browsing this forum: No registered users and 0 guests

cron