Cestina v X-ech (dlouhe)

Petr Bohdan bohdan na ramert.cz
Pátek Květen 29 07:42:37 CEST 1998


Ahoj vsici, 
kamarad me pozadal, abych do konference poslal toto:

---------------------
Predmet:	Cestina v X-ech (odpoved)

Vazeni pratele, 
nevim, jestli je to nejaka vseobecna sobeckost, ale v teto
konferenci se objevuji pouze dotazy a odpovedi uz jsou dost mizerne,
protoze odpovidaji jen ti, co jsou take nejak zmateni. Ti, co vedi jek se
veci maji, sobecky mlci. A ti kdo nevedeli, a zjisti to (uplne), si to
nechavaji pro sebe a uz se podruhe neozvou. Jenze tu mohou byt
jini, ktere by to zajimalo taky ! 
Ja jsem jeste pred dvema tydny netusil, co to jsou "locales". Postupnym
procitanim vasich mailu a experimenty jsem leccos pochopil a dnes uz muzu
radit i tem, od kterych jsem se ucil. A pokud uz vsechno vite, tak se
omlouvam, ale treba je tu jeste nekdo, koho by to zajimalo, a komu byste
meli radit prave VY a ne ja ! Byl bych vam alespon vdecen, kdybyste
opravili pripadne chyby v nasledujicim rozboru.

Predem upozornuji, ze jsem proti zasahum do XFree86, a tudiz se snazim 
vyhnout jakymkoliv patchum na Xlib, jak se da. Praxe dokazuje, ze je 
mozne se bez nich dost dobre obejit ! Zasahy do konfiguracnich souboru 
jsou vsak asi preci jen sem tam nutne.

*****************************************
Shrnuti toho, co jsem se v konferenci docetl, osobne vymailoval, nasel na
www strankach a sam zjistil:  

**********
 LOCALES: 
**********

- jsou potreba pro podporu cestiny, nebot konfiguruji knihovny (g)libc na
konkretni narodni prostredi (podrobne viz HOWTO k locales, pripadne "man
locale") - a tudiz i X-win 

- musi se nejdrive zkompilovat prikazem
"localedef" (viz dale), ke kteremu neni v RH5.0 manova stranka ... ale
aspon neco pomuze "localedef --help"  

- pro pouzivani klavesnice je nutne
nastavit ALESPON promennou LC_CTYPE (dalsi promenne: opet viz HOWTO nebo
"man locales")  

- casto se tu ruzni lide nemohou dohodnout jestli LC_CTYPE
nebo LANG=cz nebo "cs". To zalezi na konfiguraci systemu:  
--- povinny
parametr zadavany pri kompilovani locales urcuje nazev, pod kterym budou
pristupne; tedy napriklad v RedHat 5.0 prikazem:  
$ localedef -i cs_CZ -f ISO-8859-2 cs_CZ
(coz znamena, ze pro vstup se pouzije zdrojovy konfiguracni soubor "cs_CZ"
z adresare "/usr/share/i18n/locales" a znakova mapa "ISO-8859-2" z
adresare "/usr/share/i18n/charmaps" a vysledek se zkompiluje pod jmenem
"cs_CZ", tedy do adresare "/usr/share/locale/cs_CZ")  Tento prikaz tedy
vytvori konfiguracni soubory pod jmenem "cs_CZ" (podle posl. parametru). 
Dale zalezi na nastaveni aliasu v souborech
"/usr/share/locale/locale.alias" a
"/usr/X11R6/lib/X11/locale/locale.alias". Pak muzete k nastaveni 
pouzit libovolny alias jaky si zde (v prvnim souboru)
nakonfigurujete, tedy treba "cs" nebo "cz" nebo "czech". Aby tento alias 
respektovaly i X-win, je (podle me zkusenosti) treba ho nastavit i v jejich
(na druhem miste uvedenem) souboru. 
--- standartni "plny" nazev ma byt (v RH5.0)
"cs_CZ.ISO-8859-2", coz ale neni prilis prakticke. Problem je, ze
defaultni aliasy (alespon v RH5.0) nejsou vzajemne kompatibilne
nakonfigurovane. Napriklad v "/usr/share/locale/locale.alias" jsem k vyse
zminenemu plnemu nazvu nasel pouze alias pro "czech". Naproti tomu v
druhem, X-sovem "/usr/X11R6/lib/X11/locale/locale.alias" jsem nasel skoro
vsechny mozne kombinace, KROME "czech" a "cs_CZ" !!!... Je tedy na snade,
ze to takhle nemohlo dost dobre fungovat se zadnym nastavenim.  
--- vse se vyresilo upravou techto aliasovych souboru

*****************
Ceska Klavesnice:
*****************

- mate-li tedy nastavenou promennou LANG nebo LC_ALL nebo alespon LC_CTYPE
(prikazem "export LANG=cs_CZ" (nebo jak jste si nakonfigurovali aliasy-
viz vyse)), muzete spustit X-win s ceskou klavesnici
- ceskou klavesnici lze pouzit treba i defaultni (nastaveni v XF86Config)
nebo pomoci xmodmap, ci kikbd v KDE, pritom se objevi nasledujici
problemy:
1) XF86Config s nastavenim XkbKeymap "xfree86(cs)" sice zavede ceskou
klavesnici, jeji konfigurace je ovsem napr. v RH5.0 vadna tak, ze tam
uplne chybi definice NORMALNI klavesy "L" !!!! (pomuze dopsani chybejici
klavesy do "/usr/X11R6/lib/X11/xkb/symbols/cs" - nebudu rozebirat, nebot
to stejne snad nikdo takhle nepouziva)
2) soubory pro xmodmap jsou k sehnani v ruznych balicich pro lokalizaci
(jak uz tu bylo dostkrate uvedeno)
3) KIKBD - v posledni verzi (0.2.1) uz by mela byt opravena drobna chyba 
ohledne upravy v Qt a take nove ceske klavesnice od P. Vocha (nevim nakolik 
odpovidaji normam). Nicmene na pocitaci, ktery mam momentalne k dispozici se mi to
nepodarilo rozchodit (segmentation fault), ale to ani starsi verze po uprave. Jeste 
to zkusim na vlastnim stroji, kde mi starsi verze chodila (i kdyz jen s Qt 1.32). 
Pokud tomu nekdo rozumite, prosil bych moc o radu !


******************************
X-Win a spatne knihovny Xlib ?
******************************

- nevim , ktery z nasledujicich ci vyse uvedenych problemu maji resit
nejruznejsi patche a Xlib-forced knihovny, ale protoze jsem proti tomuto
reseni velmi silne zaujaty, nezajimam se o nej. Cestina je podporovana
v soucasne dobe (XFree 3.3.1 a 3.3.2) dostatecne a pokud to nejaky program
nerespektuje, pak je zastaraly a je vhodne ho nahradit necim novejsim !
Mnoha lidem funguje dobre i bez techto .... uprav.
-co jsem pochopil, jediny problem je momentalne v tom, ze Xlib ma problemy
pouzivat v ISO-8859-2 znaky, ktere jsou zaroven v 8859-1, tedy pismena s
carkou, coz lze vyresit nekolika zpusoby: 
1) v konfiguraci klavesnice (at uz standartni, pro xmodmap, nebo kikbd)
nahradit vsechny tyto zkratky (tedy: aacute, yacute, eacute, ...)
odpovidajicimi kody podle vzoru "0x1cc", kde "cc" je hexadec. kod
patricneho znaku v ISO-8859-2)
2) nenahrazovat je hexakody, ale novymi zkratkami typu "il2_aacute", ktere
je pak ovsem treba nadefinovat v "/usr/X11/lib/X11/XKeysymDB" jako aliasy
pro tyto hexakody - tedy vic prace, ale "estetictejsi"
(viz http://www.fi.muni.cz/~kabi/linux.html)
3) dalsi moznosti ma byt asi vyse zmineny patch na Xlib
- zduraznuji, ze zadnou z techto moznosti jsem nezkousel, protoze pouzivam
KDE, kde tento problem NEEXISTUJE !!!!!!!!!!!!! (nebot KDE pouziva
Qt knihovny, ktere ve verzi 1.33 funguji bez problemu !!!)

- jeste k problemu v KDE o kterem se zminil P. Voch, a na ktery nedavno
sam nekde odpovedel (jedna z mala smysluplnych odpovedi!):

>- v kde (qt), [...] jsou dobre ceske klavesy na
>  cislech, ale mrtve klavesy funguji tak, ze se napise treba carka nebo 
>  hacek a potom samotne pismeno.

Tady pomuze prave upgrade na Qt-1.33, kde je vyse zmineny problem jako
bug-fix oproti verzi 1.32 !!!
(tusim ze je to asi na ftp://sunsite.mff.cuni.cz/OS/Linux/Distributions
/Redhat-contrib/hurricane/RPMS/qt-1.33-1rh5.i386.rpm, nebo tak nejak, pri 
nejhorsim viz http://www.troll.no)

**********************
Krouzkovane "u":
**********************

- nekdo se tu ptal, jak zaridit, aby po stisku mrtve klavesy "hacek" a
pismene "U" vzniklo 'krouzkovane u'...
Staci doplnit nasledujici dva radky do souboru
"/usr/X11R6/lib/X11/locale/iso8859-2/Compose":

<dead_caron> <U>       : "\331"  Uring
<dead_caron> <u>       : "\371"  uring

***************************************

Tot vse, doufam, ze tem kteri maji problemy to pomuze usetrit spoustu
casu, zkoumani a mailovani lidem, kteri veci rozumi, ale sve znalosti
rozdavaji jen zridka.
Jsem otevren jakymkoliv otazkam, kritikam a vycitani chyb, kterych jsem se
dopustil. Priznavam, ze jsem zacatecnik a tohle jsem vykoumal behem
poslednich nekolika dnu.

S pozdravem a pranim uspechu zacatecnikum a taky diky tem, kteri mi
poradili (at uz primo ci neprimo)

Pavel Vondricka <Pavel.Vondricka na ff.cuni.cz>

---------

Petr Bohdan
bohdan na ramert.cz
------------- další část ---------------
A non-text attachment was scrubbed...
Name: [žádný popis není k dispozici]
Type: application/ms-tnef
Size: 6328 bytes
Desc: [žádný popis není k dispozici]
URL: <http://www.linux.cz/pipermail/linux/attachments/19980529/86149d23/attachment.bin>


Další informace o konferenci Linux