Здравейте,
Бих искал и в този форум да попитам, дали имате нещо против да се премахнат допълнителните правила за сортиране, зададени в българските езикови настройки ?
Освен това мисля, че в общите правила за сортиране на кирилица, трябва да се сменят местата на <U0404> и <U0401> , на <U040C> и <U040B>, и на съответните им малки букви.
В крайна сметка очаквам да се получи следната подредба на UNICODE знаците за кирилица от 0x400 до 0x45f:
1) аАбБвВгГдДѓЃђЂеЕѐЀёЁєЄжЖзЗѕЅиИѝЍіІїЇйЙјЈкКлЛљЉмМнНњЊоОпПрРсСтТћЋќЌуУўЎфФхХцЦчЧџЏшШщЩъЪыЫьЬэЭюЮяЯ
(за съжаление, програмата на този форум не позволява да се въведат ударените "И" и "Е" и затова се извеждат, например, като Ѝ )
Технически детайли:
Файлът с описанието, обикновенно, е /usr/share/i18n/locales/bg_BG.
Интересува ни секцията LC_COLLATE, която изглежда, примерно:
======================
LC_COLLATE
copy "iso14651_t1"
reorder-after <9>
.....
reorder-after <U0433>
.....
reorder-end
END LC_COLLATE
======================
Тест с PERL(кода следва):
==================
use locale;
print +(sort grep /\w/, map { chr } 0x400..0x45f), "\n";
==================
и при настойка LANG=bg_BG.UTF-8 се получава следното:
2) ЀЍѐѝаАбБвВгГѓЃдДђЂџЏѕЅеЕєЄёЁэЭжЖзЗиИІіїЇыЫйЙЈјкКќЌлЛљЉмМнНњЊоОпПрРсСтТуУўЎфФхХцЦчЧћЋшШщЩъЪьЬюЮяЯ.
Сега ако в файла .../locales/bg_BG се премахнат редовете от reorder-after <U0433> до reorder-end, без последния би трябвало да се получи:
3) аАбБвВгГдДѓЃђЂеЕѐЀєЄёЁжЖзЗѕЅиИѝЍіІїЇйЙјЈкКлЛљЉмМнНњЊоОпПрРсСтТќЌћЋуУўЎфФхХцЦчЧџЏшШщЩъЪыЫьЬэЭюЮяЯ.
Бележки:
- след редактиране на файла, трябва да се се пресъздадат езиковите настройки с командата :
localedef -i bg_BG -f UTF-8 bg_BG.UTF-8;
- забележете разликата, след E и T, между 3) и 1);
- моята Си библиотека е остаряла версия и не мога да преценя дали трябва да се махне и правилото reorder-after <9>;
- общия файл е iso14651_t1, като в текущата версия правилата от iso14651_t1 са преместени в iso14651_t1_common;
- версията на Си библиотеката (libc) може да е по-стара и да липсват общи правила за сортиране на ударени "И" и "Е", главни и малки;
- в моята версия няма общи правила за ударените "И" и "Е" и затова, само за тестване, съм добавил в .../bg_BG:
----------------
reorder-after <U0438>
<U045D> <CYR-I>;<U045D>;<MIN>;IGNORE
reorder-after <U0418>
<U040D> <CYR-I>;<U040D>;<CAP>;IGNORE
reorder-after <U0435>
<U0450> <CYR-IE>;<U0450>;<MIN>;IGNORE
reorder-after <U0415>
<U0400> <CYR-IE>;<U0400>;<CAP>;IGNORE
----------------
Румен
П.П.
Източници:
http://www.unicode.org/charts/collation/chart_Cyrillic.htmlhttp://www.collation-charts.org/winxp....ia.html (заб.: мястото на "К" с ударение не е правилно)
и от wikipedia:
http://en.wikipedia.org/wiki/Early_Cyrillic_alphabethttp://en.wikipedia.org/wiki/Cyrillic_alphabethttp://en.wikipedia.org/wiki/Russian_alphabethttp://en.wikipedia.org/wiki/Macedonian_alphabethttp://en.wikipedia.org/wiki/Serbian_Cyrillic_alphabethttp://en.wikipedia.org/wiki/Romanian_Cyrillic_alphabet (заб.: преди
1860–1862!)