Bug 23118 - Неочевидный (или даже ошибочный) выбор словаря проверки орфографии
Summary: Неочевидный (или даже ошибочный) выбор словаря проверки орфографии
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: openoffice.org-langpack-ru (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-10 13:10 MSK by Sergey Kurakin
Modified: 2010-03-17 11:27 MSK (History)
0 users

See Also:


Attachments
Реализует приоритет ru_RU.dic (альтернатива) перед остальными словарями (1.11 KB, patch)
2010-03-14 11:09 MSK, Sergey Kurakin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Kurakin 2010-03-10 13:10:05 MSK
Кажется, моё предложение по переименованию файлов словарей (#23026) не привело к ожидаемому результату.

$ ls /usr/share/myspell | grep ru_RU
ru_RU.aff
ru_RU.dic
ru_RU-ie.aff
ru_RU-ie.dic
ru_RU-lebedev.aff
ru_RU-lebedev.dic
ru_RU-lebedev-ie.aff
ru_RU-lebedev-ie.dic

$ alternatives-list | grep ru_RU    
/usr/share/myspell/ru_RU.aff points to /usr/share/myspell/ru_RU-lebedev.aff
/usr/share/myspell/ru_RU.dic points to /usr/share/myspell/ru_RU-lebedev.dic

Альтернатива 'ru_RU' указывает на ru_RU-lebedev, а OOo использует ru_RU-lebedev-ie.

Уж и не знаю, чем руководствуется OOo при выборе словаря. Может, выбирает последний по алфавиту, может первый попавшийся по маске "ru_RU*.dic", а может еще как...

Надо как-то заставить OOo смотреть в первую очередь на 'ru_RU.dic'. И только при отсутствии 'ru_RU.dic' можно включать "искусственный интеллект".
Comment 1 Valery Inozemtsev 2010-03-10 15:05:58 MSK
в /usr/share/myspell смотрит не только ООо

$ apt-cache whatdepends libhunspell | sed -ne 's|^\ \ \([A-Za-z0-9].*\)-[0-9].*|\1|p' | sort | grep -v hunspell
goldendict
kde4sdk-lokalize
libenchant
openoffice.org
songbird
thunderbird
xulrunner-192-libs

все они ведут себя примерно одинаково
единственное предложение - класть словари в /usr/share/hunspell-ru, а альтернативы закидывать в /usr/share/myspell
Comment 2 Sergey Kurakin 2010-03-14 11:06:26 MSK
(In reply to comment #1)
> все они ведут себя примерно одинаково

thunderbird выбирает именно ru_RU.dic из всего множества русских словарей.
OOo выбирает первый попавшийся для каждого языка, это даже помечено в комментариях в коде.
Про остальных ничего скажу, поскольку не пользуюсь.

> единственное предложение - класть словари в /usr/share/hunspell-ru, а
> альтернативы закидывать в /usr/share/myspell

Это было бы самым простым и надежным решением. Но оно сломает ручной выбор нужного словаря в тех приложениях, которые это умеют. Проще говоря, перестанет работать, например, вот такое:

$ echo слово | hunspell -d ru_RU-ie -

Поэтому хочу предложить простенький патч OOo, реализующий поиск системного словаря в два прохода. На первом проходе принимаются только словари, имеющие не более двух букв в "регионе" ("регион" -- это фрагмент названия файла между "_" и ".dic"). На втором проходе принимаются любые словари. Поскольку OOo сейчас поддерживает не более одного словаря на язык, всё работает как мне надо -- для русского первым принимается ru_RU.dic (альтернатива), а если его вдруг не окажется, то первый попавшийся из ru_*.dic.

OOo с этим патчем собирается и работает как следует, проверил. Но вы все-таки посмотрите на него пристально опытным взглядом.
Comment 3 Sergey Kurakin 2010-03-14 11:09:57 MSK
Created attachment 4305 [details]
Реализует приоритет ru_RU.dic (альтернатива) перед остальными словарями
Comment 4 Repository Robot 2010-03-16 18:26:54 MSK
openoffice.org-3.2.0.8-alt2 -> sisyphus:

* Mon Mar 15 2010 Valery Inozemtsev <shrek@altlinux> 3.2.0.8-alt2

- rebuild with icu 4.4
- appllied openoffice.org-3.2.0-alt-spelldict_select.patch (closes: #23118)