Chyba v triedeni cs_CZ & sk_SK

Michal Kubecek mike na mk-sys.cz
Čtvrtek Květen 29 15:25:00 CEST 2003


On Thu, May 29, 2003 at 11:29:56AM +0000, Honza Pazdziora wrote:

> No, já osobně bych problém viděl v tom, že ono hodně závisí na tom,
> jaké softwarové možnosti aktuálně máte. Pokud použijete ISO-8859-2,
> Windows-1250 nebo UTF-8, tak budete mít různé repertoáry znaků,
> transliterací a možností, jak to nejen řadit, ale dokonce i jen zapsat
> a uložit.

To by samozřejmě bylo nutné také vyřešit, je to jedna z věcí, které
současná norma také ponechává stranou.

> > znaku ale musí být jednoznačné, zda je rozlišován v prvním průchodu
> > nebo ve druhém. Tedy nic takového jako že ve 'sťal' se bere 'ť' až
> > ve druhém průchodu, zatímco v 'traťmistr' už v prvním. Zrovna tak
> 
> Tohle se někdy někde děje? Podle normy nikoli, doufám.

Nevím to jistě, ale jestli si dobře vzpomínám na důvod, proč se 'ď',
'ť' a 'ň' uvažují spolu se samohláskami až ve druhém průchodu, mělo
by jít o to, že většinou po nich následuje samohláska, se kterou
splývají. Takže není podstatný rozdíl mezi 'sťal' a 'tětiva'. Pokud
ale nenásleduje samohláska, se kterou by 'ť' splývalo, není důvod
rozlišení odkládat do druhého průchodu. Touhle částí normy si ale
příliš jistý nejsem, takže je možné, že aspoň tohle nehrozí.

> Tím jedním písmenem máte na mysli předpokládám to, že se nepřipouští
> výjimka typu "mochodně", dvojice znaků "ch" se vždy řadí mezi "h"
> a "i". Proč to ale je nutné vázat na to, že to bude i vnitřně
> reprezentováno jako jeden znak? S tím, jak řadit dvojici znaků "ch"
> přece žádný technický problém není. Resp. je jich výrazně míň než by
> bylo problémů s tím, že do Latin2 a cp1250 dodatečný znak nenacpete
> a i v Unicode by to byla záležitost na léta. ?

Kdyby se vždy argumentovalo tím, že něco je záležitost na léta, pak by
s projekty jako Unicode nebo IPv6 nikdo ani nezačal. Pokud má být 'ch'
skutečně chápáno jako jeden znak (a ono mimo počítače je - viz křížovky
nebo formuláře), pak by mělo být jako jeden znak chápáno i v počítači.
Mají-li příkaz sort a funkce strcmp() brát 'ch' jako jeden znak, proč
by ho tak neměly brát i příkaz wc nebo funkce strlen(). A samozřejmě
i všechny ostatní. Toho lze v úplnosti dosáhnout jedině v případě, že
to skutečně bude jako jeden znak implementováno. A elegantně by se tím
vyřešil i problém s rozlišením 'ch' v 'pochodně' a 'ch' v 'mochodně'.

                                                        Michal Kubeček


Další informace o konferenci Linux