[Lug-bg] речниково сортиране: кирилица и български езикови настройки
- Subject: [Lug-bg] речниково сортиране: кирилица и български езикови настройки
- From: Roumen Petrov <help@xxxxxxxxxxxxxxxxx>
- Date: Sun, 22 Jun 2008 18:03:18 +0300
Здравейте,
Бих искал и в този списък да попитам, дали имате нещо против да се
премахнат допълнителните правила за сортиране, зададени в българските
езикови настройки ?
Освен това мисля, че в общите правила за сортиране на кирилица, трябва
да се сменят местата на <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.html
http://www.collation-charts.org/winxp/winxp.0402.CP1251.Bulgarian_Bulgaria.html
(заб.: мястото на "К" с ударение не е правилно)
и от wikipedia:
http://en.wikipedia.org/wiki/Early_Cyrillic_alphabet
http://en.wikipedia.org/wiki/Cyrillic_alphabet
http://en.wikipedia.org/wiki/Russian_alphabet
http://en.wikipedia.org/wiki/Macedonian_alphabet
http://en.wikipedia.org/wiki/Serbian_Cyrillic_alphabet
http://en.wikipedia.org/wiki/Romanian_Cyrillic_alphabet (заб.: преди
1860–1862!)
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|