Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: [Lug-bg] "речниково" сортиране на български


  • Subject: Re: [Lug-bg] "речниково" сортиране на български
  • From: Roumen Petrov <help@xxxxxxxxxxxxxxxxx>
  • Date: Thu, 19 Jun 2008 20:14:49 +0300

Александър Шопов wrote:
Подредбата зависи от настройките в частта LC_COLLATE на локала.

Погледни тук:
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/localedata/locales/bg_BG?rev=1.9&content-type=text/x-cvsweb-markup&cvsroot=glibc

Имам локално копие на гну libc


Локалът първоначално е изработен от Делян Тошев. Последните поправки в
него са от Антон Зиновиев и мен (Александър Шопов). Делян не се занимава
вече с локала.

Последният подал файла към Улрих Дрепър съм аз.

Обсъжданията за подредбата по принцип текат в списъка с преводачи.

Предположих, че зависи от файла /usr/share/i18n/locales/bg_BG.
Разглеждах го и не установих, защо двете и-та са преди всички
български букви, а също защо дава, че са равни. Не са описани, но ми е странен резултата.
Ударените и-та трябва да се подреждат като неударените си форми. Това е
бъг.



Интересува ме, кой отговаря за подръжката на този файл ? Данните в
него
не ми изглеждат много актуални.


Направих и тест с PERL(кода следва):
==================
use locale;
print +(sort grep /\w/, map { chr } 0x400..0x45f), "\n";
==================
и при настойка LANG=bg_BG.UTF-8 се получава следното:

ЀЍѐѝаАбБвВгГѓЃдДђЂџЏѕЅеЕєЄёЁэЭжЖзЗиИІіїЇыЫйЙЈјкКќЌлЛљЉмМнНњЊоОпПрРсСтТуУўЎфФхХцЦчЧћЋшШщЩъЪьЬюЮяЯ
Виждат се и други неправилно подредени знаци.

Можеш ли да опишеш повече случаи, за да може малко по-малко да се
оправи? Локалът действително не е поддържан отдавна.

Поздрави:
ал_шопов

Ами прикачих файла bg_BG.diff.
Според мен всичките reorder-after водят до неправилно сортиране. Има
подредба на кирилица в iso14651_t1, която намирам за правилна, с малки,
може би несъществени, изключения.

В bg_BG, като се премахнат съществуващите правила и се добавят нови за
ударено "И" и "Е" се получава:
аАбБвВгГдДѓЃђЂеЕѐЀєЄёЁжЖзЗѕЅиИѝЍіІїЇйЙјЈкКлЛљЉмМнНњЊоОпПрРсСтТќЌћЋуУўЎфФхХцЦчЧџЏшШщЩъЪыЫьЬэЭюЮяЯ

А ако се оправи и подредбата в iso14651_t1, ще се получи (виж след "Е" и
"Т"):
аАбБвВгГдДѓЃђЂеЕѐЀёЁєЄжЖзЗѕЅиИѝЍіІїЇйЙјЈкКлЛљЉмМнНњЊоОпПрРсСтТћЋќЌуУўЎфФхХцЦчЧџЏшШщЩъЪыЫьЬэЭюЮяЯ

Мисля, че в bg_BG трябва да се махнат всички правила, като ударено "и" и
"е" са за iso14651_t1.

Румен

П.П.:
Литература:
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!)

--- /usr/share/i18n/locales/bg_BG-ORIG	2006-09-14 10:26:52.000000000 +0300
+++ /usr/share/i18n/locales/bg_BG	2008-06-18 20:15:19.016037793 +0300
@@ -101,56 +101,20 @@
 <CYR-E>
 <CYR-YOU>
 <CYR-YA>
-reorder-after <U0433>
-<U0453> <CYR-GHE>;<CYR-GZHE>;<MIN>;IGNORE % Mac. gje
-reorder-after <U0434>
-<U0452> "<CYR-DE><CYR-ZHE>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-DJE
-<U045F> "<CYR-DE><CYR-ZHE>";"<CYR-DCHE><LIG>";"<MIN><MIN>";IGNORE % CYR-DCHE
-<U0455> "<CYR-DE><CYR-ZE>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-DZE
-reorder-after <U0435>
-<U0454> <CYR-IE>;<UKR-IE>;<MIN>;IGNORE
-<U0451> <CYR-IE>;<CYR-IO>;<MIN>;IGNORE
-<U044D> <CYR-IE>;<CYR-E>;<MIN>;IGNORE
 reorder-after <U0438>
-<U0406> <CYR-I>;<UKR-I>;<MIN>;IGNORE
-<U0457> <CYR-I>;<UKR-YI>;<MIN>;IGNORE
-<U044B> <CYR-I>;<CYR-YEROU>;<MIN>;IGNORE
-reorder-after <U043A>
-<U045C> <CYR-KA>;<CYR-KJE>;<MIN>;IGNORE
-reorder-after <U043B>
-<U0459> "<CYR-EL><CYR-SIGMOUIL>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-LJE
-reorder-after <U043D>
-<U045A> "<CYR-EN><CYR-SIGMOUIL>";"<LIG><LIG>";"<MIN><MIN>";IGNORE % CYR-NJE
-reorder-after <U0443>
-<U045E> <CYR-OU>;<CYR-OUBRE>;<MIN>;IGNORE
-reorder-after <U0447>
-<U045B> <CYR-CHE>;<CYR-TSHE>;<MIN>;IGNORE
-reorder-after <U0413>
-<U0403> <CYR-GHE>;<CYR-GZHE>;<CAP>;IGNORE % Mac. gje
-reorder-after <U0414>
-<U0402> "<CYR-DE><CYR-ZHE>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-DJE
-<U040F> "<CYR-DE><CYR-ZHE>";"<CYR-DCHE><LIG>";"<CAP><CAP>";IGNORE % CYR-DCHE
-<U0405> "<CYR-DE><CYR-ZE>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-DZE
-reorder-after <U0415>
-<U0404> <CYR-IE>;<UKR-IE>;<CAP>;IGNORE
-<U0401> <CYR-IE>;<CYR-IO>;<CAP>;IGNORE
-<U042D> <CYR-IE>;<CYR-E>;<CAP>;IGNORE
+<U045D> <CYR-I>;<U045D>;<MIN>;IGNORE
 reorder-after <U0418>
-<U0456> <CYR-I>;<UKR-I>;<CAP>;IGNORE
-<U0407> <CYR-I>;<UKR-YI>;<CAP>;IGNORE
-<U042B> <CYR-I>;<CYR-YEROU>;<CAP>;IGNORE
-reorder-after <U0419>
-<U0408> <CYR-IBRE>;<CYR-JE>;<CAP>;IGNORE
-reorder-after <U041A>
-<U040C> <CYR-KA>;<CYR-KJE>;<CAP>;IGNORE
-reorder-after <U041B>
-<U0409> "<CYR-EL><CYR-SIGMOUIL>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-LJE
-reorder-after <U041D>
-<U040A> "<CYR-EN><CYR-SIGMOUIL>";"<LIG><LIG>";"<CAP><CAP>";IGNORE % CYR-NJE
-reorder-after <U0423>
-<U040E> <CYR-OU>;<CYR-OUBRE>;<CAP>;IGNORE
-reorder-after <U0427>
-<U040B> <CYR-CHE>;<CYR-TSHE>;<CAP>;IGNORE
+<U040D> <CYR-I>;<U040D>;<CAP>;IGNORE
+reorder-after <U0435>
+<U0450> <CYR-IE>;<U0450>;<MIN>;IGNORE
+reorder-after <U0415>
+<U0400> <CYR-IE>;<U0400>;<CAP>;IGNORE
+% ROUMEN bug(?) in iso14651_t1 to swap(+lowercase!):
+%  <U0404> <UKR-IE>;<BAS>;<CAP>;IGNORE
+%  <U0401> <CYR-IO>;<BAS>;<CAP>;IGNORE
+% also(?)
+%  <U040C> <CYR-KJE>;<BAS>;<CAP>;IGNORE
+%  <U040B> <CYR-TSHE>;<BAS>;<CAP>;IGNORE
 reorder-end
 END LC_COLLATE
 
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.