�no, m�žete č�tať tento dokument, a to aj na komerčn� učely!
Autori nenes� zodpovednosť za materi�lnu či psychick� ujmu sp�soben� čitateľovi, jeho rodinn�m pr�slušn�kom, dom�cim a hospod�rskym zvierat�m, pr�padne poč�tačov�mu zariadeniu.
Toto je „free“ dokument --- m�žete ho šï¿½riť a/alebo modifikovať v s�lade s podmienkami licencie GNU Free Documentation Licence, ktorej znenie n�jdete na adrese http://www.gnu.org/licenses/fdl.html.
Autorom p�vodn�ho Slovak-HOWTO je J�n Ondrej (SAL). Tento dokument z neho obsahuje: n�zov a n�vody pre Joe, MC a Sambu. Všetko bolo ukradnut� so s�hlasom autora.
Ak n�jdete v tomto s�bore niečo, čo je nezl�čiteľn� s vašim linuxov�m presvedčen�m, nap�šte najsk�r do diskusie linux, potom sk-i18n, dajte pr�spevok na www.linux.sk a poohov�rajte ma na #sklug. V pr�pade, že v�s to neprejde, skontrolujte, či m�te aktu�lnu verziu a, samozrejme, až nakoniec, dajte mi vedieť. Adresy s�:
Aktu�lna verzia: http://slovencina.linux.sk/howto
Priania, sťažnosti a ponuky na sob�š: [email protected]
Na t�to adresu sa tiež obracajte, ak m�te niečo, čo by nemalo ch�bať v Slovak-HOWTO.
Nad�cia Pom�ž a skonaj prispela na dop�sanie časti o kl�vesnici v iXoch sama sebe čiastkou 500�000,-�Sk, v telev�zii Pom�ž a skonaj i v rovnomennom časopise boli zverejnen� inzer�ty, politick� strana PAS nekompromisne trv� na kompromise a všetci pij� miner�lku Pom�ž a skonaj. Tigre, nosorožce a l�čne kon�ky boli pokrsten�, a predsa sa s kapitolou o kl�vesnici v iXoch nič nedeje. Mimochodom, sme najč�tanejšie Slovak-HOWTO na svete!
Pri prispievan� sa sk�ste riadiť nasledovn�mi pravidlami:
Pre t�ch, ktor� maj� v�žny z�ujem podieľať sa na p�san� Slovak-HOWTO, je možn� CVS pr�stup priamo k zdrojov�m k�dom dokumentu na serveri cvs.linuxdoc.org v adres�ri /cvsroot/LDP/howto/docbook/Slovak-HOWTO/. Bližšie inform�cie o z�skan� CVS konta a webovskom rozhran� k CVS serveru n�jdete v LDP Autor Guide.
Opravy robte vždy vo form�te SGML (DTD DocBook, verzia 4.0), ktor� je prim�rnym form�tom pri tvorbe tohto dokumentu. Je tiež možn� posielať čist� text. Pr�spevky p�šte, pokiaľ možno, s diakritikou v norme ISO-8859-2.
Ak je to niečo v�čšie, dajte mi najsk�r vedieť, čo chyst�te, pretože je možn�, že už na tom niekto mak� a teda buď na to zabudnete, alebo to sk�site dorobiť s danou osobou. (Vzhľadom na to, že zatiaľ sa do tohto dokumentu dostalo asi 20 riadkov cudzieho textu, zd� sa mi predch�dzaj�ca veta maxim�lne smiešna. Ha-ha, zasmial som sa...)
Vaše meno a adresa bud� automaticky zverejnen� spolu s vašim pr�spevkom. Ak si to nežel�te, mus�te o to v�slovne požiadať. Takisto, autor pr�spevku už jeho zaslan�m implicitne s�hlas� s aplik�ciou licencie tohto dokumentu na časť, ktorej je autorom.
V Czech-HOWTO sa hovor�: „Když už někdo podobn� dokument čte, děl� to z nutnosti a ne pro sv� pobaven�.“ Mus�me však zobrať do �vahy, že v Čech�ch je vyššia životn� �roveň a oni až toľko srandy nepotrebuj�...
Men� autorov n�vodov na lokaliz�ciu konkr�tnych aplik�ci� sa nach�dzaj� priamo v kapitole Poslovenčovanie konkr�tnych aplik�ci�, pr�padne Fintičky so slovenčinou.
J�n 'judas' Tomka -- Zodpovedn� ved�ci.
Ľubom�r 'salo' Sedl�čik -- ksh/csh/tcsh, grammar bugfixes.
Podpora miestnych nastaven� je dnes mimoriadne d�ležit�m faktorom, ktor� charakterizuje jednotliv� operačn� syst�my. Časy, keď boli ľudia štastn�, že to niečo p�še, s� nen�vratne preč a použï¿½vatelia vyžaduj� podporu svojich miestnych nastaven�. V GNU syst�moch je t�to podpora implementovan� priamo do štandardnej knižnice jazyka C -- GNU libc. T�to podpora je navrhnut� tak, aby zohľadňovala všetky požiadavky kladen� na nastavenia pre ak�koľvek krajinu a ak�koľvek jazyk.
R�zne krajiny a kult�ry maj� odlišn� pravidl� komunik�cie. Tieto pravidl� m�žu byť mal�ho rozsahu, napr. form�t d�tumu a času, až po veľmi koplexn� ako je jazyk, ktor�m hovoria.
Internacionaliz�cia softv�ru znamen� programovať ho tak, aby bol schopn� pracovať s použivateľov�mi miestnymi nastaveniami. V ISO C pracuje internacionaliz�cia v zmysle locales. Každ� locale (miestne nastavenia) špecifikuje skupinu pravidiel, jedno pravidlo pre každ� učel. Užï¿½vateľ si zvol� skupinu pravidiel špecifikovan�m locale (pomocou syst�mov�ch premenn�ch).
Všetky programy dedia nastaven� locale v r�mci ich prostredia. Pod podmienkou, že programy s� nap�san� tak, že akceptuj� nastaven� locales, m�žu sa riadiť pravidlami, ktor� uprednostňuje použï¿½vateľ.
T�to časť popisuje jednotliv� premenn�, ktor� ovplyvňuj� miestne nastavenia a ktor�mi sa riadia aj funkcie knižnice GNU libc.
Nastavenie premennej prostredia sa rob� pomocou pr�kazu shellu
bash$ export LC_PREMENNA=sk tcsh$ setenv LC_PREMENNA sk |
LC_PREMENNA je jedna z nasleduj�cich:
LC_COLLATE --- Triedenie reťazcov. Nastaven�m tejto premennej možno prin�tiť aplik�cie, napr. sort, ls a in�, aby pri porovn�van� reťazcov brali do �vahy miestne rozloženie jednotliv�ch p�smen v abecede. Slovenčina m� napr�klad hneď niekoľko znakov, ktor� by pri trieden� podľa č�selnej hodnoty znaku sp�sobovali probl�my. Slovensk� nastavenia triedenia povedia funkciam strcoll a strxfrm, že napr�klad ch je jedno p�smeno a nasleduje hneď za h a nie za c, že širok� � nasleduje za dlh�m � a to zase za obyčajn�m a. Sk�ste si to na pr�kaze sort. Zadajte p�smen� cc ch hh, potom zmeňte LC_COLLATE pr�kazom
bash$ export LC_COLLATE=sk tcsh$ setenv LC_COLLATE sk |
Sk�ste to so sort znovu a porovnajte v�sledok...
LC_CTYPE --- Klasifik�cia a prevod znakov, multibyte. Spr�vne nastavenie tejto premennej je nutn� pre korektn� rozlišovanie znakov abecedy jednotliv�ch jazykov, určenie č�slic, tzv. bielych znakov, prevod mal�ch p�smen na veľk�, atď. Najvhodnejšie je t�to premenn� nenastavovať a t�m umožniť, aby bola jej hodnota prebrat� od premenn�ch LC_ALL alebo LANG (viď ďalej). Ak ale nechcete použï¿½vať slovensk� nastavenia, len mať spr�vne zobrazen� slovensk� fonty a funkčn� slovensk� kl�vesnicu na konzole aj pod iXami, nastavte iba t�to premenn�.
Vždy si buďte stopercentne ist�, že m�te t�to premenn� nastaven� (buď cez LC_ALL, LANG alebo priamo), lebo inak nem� zmysel č�tať ďalej! Ono „klasifik�cia a prevod znakov“ neznie nejako l�kavo, ale vedzte, že je to sakramentsky d�ležit� pre život slovensk�ch p�smeniek vo vašom Linuxe! |
LC_MONETARY, LC_NUMERIC --- Form�t peňažn�ch a č�seln�ch hodn�t. Umožňuje meniť skupinu nastaven�, ktor� sa použij� pri form�tovan� peňažn�ch hodn�t alebo všetk�ch ostatn�ch č�seln�ch hodn�t. S� to desatinn� čiarka, oddeľovač tis�cov, zoskupovanie č�slic, znamienka pre kladn� a zaporn� hodnoty, atď.
LC_TIME --- Form�tovanie d�tumu a času. Nastavenia oddeľovačov medzi hodinami, min�tami a sekundami, n�zvy dn�, poradie rok, mesiac a deň v d�tume, ...
LC_MESSAGES --- V�ber jazyka, použit�ho užï¿½vateľsk�m rozhran�m na preklad hl�šok programov. Toto je presne t� premenn�, ktor� prin�ti aplik�cie hovoriť po slovensky. Viď ďalšie kapitoly.
S prekladom hl�sen� programov, hlavne s umiestnen�m s�borov s preložen�mi reťazcami, s�vis� premenn� NLSPATH. Mala by obsahovať dvojbodkami oddelen� zoznam adres�rov, v ktor�ch sa bud� hľadať .mo s�bory pre miestne nastavenia dan� premennou LC_MESSAGES. Premenn� NLSPATH je však potrebn� nastavovať len vo v�nimočn�ch pr�padoch, pretože aplik�cie hľadaj� preklady svojich hl�sen� v štandardn�ch adres�roch pre tieto s�bory.
Okrem t�chto premenn�ch bolo implementovan�ch niekoľko ďalšï¿½ch, ktor� zatiaľ nie s� zdokumentovan� (The GNU C Library Reference Manual). Ich v�znam je zrejm� z n�zvu, takže uvediem aj svoju dedukciu.
LC_PAPER --- Form�t papiera. V našich zemepisn�ch šï¿½rkach sa napr�klad použï¿½va form�t A4, v Amerike je to Letter, atď. Pozor, t�to premenn� neobsahuje priamo n�zov form�tu, ale (tak, ako všetky LC_ premenn�), skratku miestneho nastavenia, teda u n�s to bude sk. Ak by sme chceli použï¿½vať form�t Letter, museli by sme t�to premenn� nastaviť na k�d miestneho nastavenia niektorej z kraj�n, ktor� použï¿½va tak�to form�t, napr�klad us. V tomto pr�pade je nutn� nainštalovať bal�k s miestnymi nastaveniami pre t�to krajinu (locales-us).
LC_NAME --- Form�t mena a priezviska. U n�s m� každ� dve men�, p�šu sa v porad� meno, priezvisko. V Rusku maj� zase tri men� v porad� meno, otcovo-meno, priezvisko. V Maďarsku maj� dve men� tak ako u n�s, ale p�šu sa v opačnom porad�. O tom je t�to premenn�. Asi...
LC_ADDRESS --- Sp�sob z�pisu adresy. Poradie ulice a popisn�ho č�sla domu, ZIP k�d, PSČ apod.
LC_TELEPHONE --- Form�t telef�nnych a faxov�ch č�sel. Určuje zoskupovanie č�slic, ich oddelovanie, počet č�sel predvoľby, ...
LC_MEASUREMENT --- Miery. Jednotky hmotnosti, objemu, teploty a dĺžky, použï¿½van� v tej ktorej krajine. Program nap�san� v USA bude pravdepodobne poč�tať s gal�nmi vody, ale ak je spr�vne nap�san�, s premennou LC_MEASUREMENT nastavenou na „sk“ bude zobrazovať litre v spr�vnom pomere. To ist� plat� napr�klad pre prevod teploty vo Fahrenheitovej stupnici na stupne Celsia.
LC_IDENTIFICATION --- Az ap�d, tak toto neviem. Rodn� č�slo? Č�slo soci�lneho poistenia? Č�slo top�nok?
LC_ALL --- Ak je t�to premenn� nastaven�, použije sa jej hodnota pre všetky vyššie spomenut� skupiny locales, bez ohľadu na hodnotu pr�slušn�ch premenn�ch.
LANG --- Hodnota tejto premennej sa použije pre tie skupiny locales, ktor� nemaj� pr�slušn� premenn� nastaven�.
LANGUAGE --- Alternat�vne miestne nastavenia. T�to premenn� m�že obsahovať usporiadan� zoznam k�dov miestnych nastaven� oddelen�ch dvojbodkami. S�bory s prekladmi hl�šok programov sa bud� hľadať v porad�, v akom s� určen� v tomto zozname. Ak sa nepodar� n�jsť s�bor s preložen�mi hl�škami programu v jednom jazyku, použije sa s�bor pre nasleduj�ci jazyk v zozname LANGUAGE. Navyše, ak sa s�bor pre prv� jazyk aj n�jde, ale niektor� reťazec z neho nie je preložen�, nepoužije sa p�vodn� (anglick�), ale najsk�r sa pok�si n�jsť preklad dan�ho reťazca v s�bore pre ďalšï¿½ jazyk v zozname LANGUAGE. To je v�hodn� pre ľud�, ktor� okrem svojho jazyka ovl�daj� nejak� in� lepšie ako angličtinu, v ktorej s� zvyčajne programy origin�lne nap�san�. Napr�klad Slov�k by mohol mať nastaven� LANGUAGE="sk:cz" a Szolv�k z Kom�rom zase LANGUAGE="hu:sk".
Premenn� LANGUAGE ovplyvňuje len premenn� LC_MESSAGES! Pre spr�vnu funkciu je nutn� nastaviť aj ostatn� premenn� (minim�lne LC_CTYPE). |
LINGUAS --- T�to premenn� nem� špeci�lny v�znam z hľadiska GNU libc, ale zvykne sa použï¿½vať pri inštal�cii programov (zo zdroj�kov). Medzerami oddelen� zoznam k�dov miestnych nastaven� určuje jazyky, pre ktor� si užï¿½vateľ žel� inštalovať preklady reťazcov aplik�cie. Pr�klad:
bash$ export LINGUAS="sk cz" bash$ ./configure bash$ make install |
Tieto pr�kazy skompiluj� a nainštaluj� aplik�ciu s podporou slovenčiny a češtiny. Inštalačn� skripty obvykle tiež kontroluj� obsah premenn�ch LANG a LC_ALL, tieto ale m�žu obsahovať len jeden k�d miestnych nastaven�.
RPM_INSTALL_LANG --- Častejšie ako zo zdrojov�ho k�du sa aplik�cie inštaluj� z r�znych bal�kov (rpm, deb, ...). Kv�li šetreniu miestom na disku (a logike -- m�lokto ovl�da tridsať reč�) je v RPM4 možn� určiť jazyk, ktor�ho preložen� hl�šky sa bud� inštalovať. Preto odpor�čam do s�boru .bash_profile (.login) užï¿½vateľa, ktor� inštaluje bal�ky (root), vložiť nasledovn� riadok:
bash$ export RPM_INSTALL_LANG=sk tcsh$ setenv RPM_INSTALL_LANG "sk" |
Ak sa v�m nebodaj stane tak� vec, že nainštalujete cel� operačn� syst�m a až potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), sk�ste skript uveden� v časti RPM4.
Miestne nastavenia sa určuj� zo spomenut�ch premenn�ch, pričom tieto sa vyhodnocuj� v tomto porad�:
LANGUAGE --- ovplyvňuje len LC_MESSAGES |
LC_ALL |
LC_* |
LANG |
To znamen� asi toľko, že keď raz nastav�te LC_ALL, jednotliv� premenn� LC_* sa už neber� do �vahy. Na druhej strane, ak m�te napr�klad nastaven� len niektor� z LC_*, ostatn� sa nastavia na hodnotu premennej LANG.
Premenn�, ktor� ovplyvňuj� miestne nastavenia, sa napĺňaj� k�dmi miestnych nastaven�. K�dy miestnych nastaven� s� reťazce, ktor�ch form�t sa riadi niekoľk�mi pravidlami. Všeobecn� tvar je:
jazyk[_�zemie[.k�dovanie]][@modifik�tor] |
jazyk je napr. sk pre slovenčinu, cs pre češtinu, hu pre maďarčinu, �zemie je SK pre Slovensko, CZ pre Česk� republiku, HU pre Maďarsko, k�dovanie je ISO-8859-2 pre všetky stredoeur�pske jazyky (je možne použiť niekoľko form�tov na zadanie k�dovania) a modifik�tor služi na povolenie alebo zak�zanie niektor�ch funkci�. Tie s� dan� v defin�ciach miestnych nastaven�. Napr�klad, pre Veľk� Brit�niu je modifik�torom reťazec euro a pri jeho použit� sa ako peňažn� mena bude použï¿½vať euro namiesto libry. To znamen�, že sa mus� použiť k�dovanie iso-8859-15, ktor� definuje znaky euro a cent.
Pr�klady k�dov miestnych nastaven� (každ� z t�chto reťazcov je možn� priradiť premenn�m miestnych nastaven�, ale najčastejšie sa použï¿½vaj� len dvojp�smenkov� skratky v poslednom stĺpci):
Tabuľka 1. Pr�klady k�dov miestnych nastaven�
sk_SK.ISO-8859-2 | sk_SK | sk | |
cs_CZ.ISO-8859-2 | cs_CZ@-ch | cs@-ch | cs |
en_GB.iso8859 | en_GB | en@euro | en |
ja_JP.ujis | ja_JP.EUC | ja_JP | ja |
Nemali by sme zabudn�ť na dve štandardn� locales, ktor� sa použij�, ak nie s� syst�mov� premenn� nastaven� a programy ich použï¿½vaj� do doby, k�m sa inicializuje lokaliz�cia. Tvrd�m, že sa použij� obe, pretože moment�lne s� totožn�, ale v bud�cnosti sa m�žu v tejto oblasti štandardy ISO C a POSIX odlišovať a potom to bude z�ležať na konfigur�cii syst�mu.
C --- nastavenia podľa štandardu ISO C. |
POSIX --- nastavenia podľa štandardu POSIX. V s�časnosti je to alias pre nastavenia C. |
V prvom rade treba nainštalovať bal�k s podporou miestnych nastaven�, ktor� m� n�zov locales a tiež bal�k s podporou priamo pre Slovensko --- locales-sk. Ak m�te z�ujem použï¿½vať aj podporu pre nejak� in� jazyk (na našom �zem� je aktu�lna najm� čeština a maďarčina), mus�te tiež nainštalovať bal�ky pre tieto jazyky.
V druhom rade si mus�te nainštalovať bal�ky s podporou miestnych nastaven� a priamo slovenčiny (s� to locales a locales-sk).
V ďalšom kroku si nezabudnite nainštalovať bal�ky locales a locales-sk. Takisto, pre každ� jazyk, ktor� sa chyst�te použï¿½vať, si nainštalujte bal�k s podporou miestnych nastaven�.
V pr�pade probl�mov s miestnymi nastaveniami sa držte predch�dzaj�cich troch krokov.
Prejdime sa teraz trochu po našich adres�roch. Prv� navšt�vime /usr/share/locale/sk. Na prv� pohľad vidno, že adres�r a s�bory v tomto adres�ri maj� men� totožn� s premenn�mi, pomocou ktor�ch sa nastavuj� jednotliv� kateg�rie miestnych nastaven�. Je to preto, lebo pr�ve z t�chto s�borov sa nač�taj� nastavenia, keď je dan� premenn� nastaven� na hodnotu sk. Okrem nich tu m�že byť ešte s�bor charset, ktor� obsahuje len jeden riadok s reťazcom iso-8859-2. Ten hovor�, ak� k�dovanie znakov sa m� použiť pre dan� miestne nastavenia.
Všetky s�bory v tomto adres�ri s� bin�rne d�ta a adres�r LC_MESSAGES obsahuje s�bory, ktor�ch men� s� totožn� s n�zvami niektor�ch bal�kov nainštalovan�ch na vašom syst�me, s pr�ponou mo. S� to preklady reťazcov z jednotliv�ch aplik�ci�. O nich si povieme nesk�r. Teraz by sme mohli zistiť, čo vlastne obsahuj� s�bory LC_*.
Presuňme sa do adres�ra /usr/share/i18n/. Tu, v textovom s�bore sk_SK v podadres�ri locales/ sa konečne nach�dzaj� slovensk� miestne nastavenia v čitateľnej (a editovateľnej) forme. S�bory v tomto adres�ri maj� presne dan� štrukt�ru, ktor� je pop�san� v manu�lovej str�nke locale(5). Pre bežn�ho použï¿½vateľa nem� zmysel meniť nastavenia v tomto s�bore, keďže ide o štandardn� nastavenia, ktor� sa použï¿½vaj� na celom Slovensku. Ale, proti Gustovi žiadna putika! Ak sa teda rozhodnete zmeniť niečo v tomto s�bore, mus�te aktualizovať s�bory v prvom spom�nanom adres�ri /usr/share/locales/sk/ pr�kazom, ktor� �daje v s�bore sk_SK skompiluje a uložï¿½ do s�borov LC_COLLATE, LC_CTYPE, ...
sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK |
V podadres�ri /usr/share/i18n/charmaps/ sa nach�dzaj� s�bory s popismi jednotliv�ch k�dovani znakov. Pre Slovensko je aktu�lny ISO-8859-2 (čo je aj obsah spom�naneho s�boru charset).
V adres�ri /usr/share/locale/ sa nach�dza s�bor locale.alias, ktor� definuje tzv. aliasy pre k�dy miestnych nastaven�. Pre spr�vnu funkciu slovensk�ch miestnych nastaven� by mal obsahovať tieto dva riadky:
sk sk_SK.ISO-8859-2 slovak sk_SK.ISO-8859-2 |
To zabezpeč�, že aj keď nezad�te k�dovanie znakov, bude použit� iso-8859-2. Druh� riadok m� na svedom� to, že namiesto sk možno zadať slovak.
Ale na aliasy typu slovak si d�vajte bacha! Niektor� aplik�cie, ktor� v s�vislosti s miestnymi nastaveniami nevyužï¿½vaj� služby libc, totiž na aliasy kašľï¿½ a zauj�maj� ich len prv� dva znaky nastaven�ch premenn�ch. A tak sa zo slovak stane sl, čo je Slovinsko. Pozit�vne je, že pre slovenčinu m�žete nastaviť premenn� napr�klad na hodnotu skaderukaskadenoha. |
Nastavenia internacionaliz�cie sa (v RedHat a Mandrake) nach�dzaj� v s�bore /etc/sysconfig/i18n. Je to veľmi užitočn� s�bor, ktor� si r�chlo obľï¿½bite. Možno v ňom nastaviť všetko, čo sa kedy t�kalo internacionaliz�cie, n�rodn�ch fontov a rozložen� kl�ves. Tento s�bor však len definuje syst�mov� premenn� a zvykne sa vkladať (source /etc/sysconfig/i18n) do inicializačn�ch skriptov. Exportovanie premenn�ch (odovzdanie ostatn�m aplik�ci�m) m� na starosti skript /etc/profile.d/lang.sh (bash) alebo /etc/profile.d/lang.csh (tcsh). Tento sa vykon� pri každom štarte shellu, typicky je volan� z /etc/profile (bash) alebo /etc/csh.cshrc (tcsh).
S�bor /etc/sysconfig/i18n definuje nastavenia pre cel� syst�m. Tieto sa použij�, ak sa nen�jde s�bor s užï¿½vateľov�mi nastaveniami. Každ� užï¿½vateľ si m�že určiť svoje vlastn� nastavenia v s�bore .i18n v jeho domovskom adres�ri. Nastavenia sa vždy č�taj� len z jedn�ho z t�chto s�borov, teda ak m� užï¿½vateľ svoj vlastn� s�bor ˜/.i18n, nastavenia zo s�boru /etc/sysconfig/i18n sa ignoruj�.
Užï¿½vateľ si m�že zmeniť nastavenia aj ručne, kedykoľvek sa mu zachce, nastaven�m premenn�ch prostredia LC_MESSAGES, LANG, atď.
Vypn�ť nejak� nastavenie je možn� pr�kazom
sh$ unset LC_MESSAGES LANG |
T�m sa zrušia nastavenia dan�ch premenn�ch (a použije sa štandardn� locale C alebo POSIX).
Ak m�te napr�klad nastaven� premenn� LC_ALL=sk a LC_MESSAGES=cz, tak po pr�kaze unset LC_ALL nebudete mať hl�senia programov v angličtine, ale češtine. Preto, ak chcete vypn�ť nejak� nastavenia, vždy mus�te pr�kazom unset zrušiť nastavenia všetk�ch premenn�ch, ktor� m�žu ovplyvňovať dan� miestne nastavenia.
export/setenv | |
---|---|
Neodpust�m si mal� pozn�mku k pr�kazu export. Je to vstavan� funkcia všetk�ch shellov kompatibiln�ch s klasick�m sh (teda aj bash). Pre shelly typu tcsh je ekvivalentom pr�kaz setenv. Je d�ležit� uvedomiť si, čo presne tento pr�kaz rob� s premenn�mi. V dokument�cii k bashu sa hovor�, že export označ� premenn�, aby bola odovzdan� detsk�m (child) procesom v r�mci prostredia (environment). To znamen� asi toľko, že keď spust�te napr. iXy z matersk�ho procesu bash, ktor� pri štarte exportoval premenn� LANG=sk, všetky aplik�cie v prostred� X Window System bud� dediť toto nastavenie a teda (ak to sami podporuj�) bud� fungovať po slovensky. Ak budete chcieť spustiť aplik�ciu bez slovensk�ch nastaven�, mus�te v xterme zadať pr�kaz unset LANG (unsetenv LANG pre tcsh), č�m pre všetky detsk� procesy xtermu (presnejšie shellu, ktor� je v ňom spusten�), zrušï¿½te nastavenie premennej LANG. Potom aplik�cie spusten� priamo z tohto xtermu bud� fungovať bez podpory slovenčiny. Trochu sa s t�m pohrajte. |
S miestnymi nastaveniami �zko s�vis� aj nastavenie časovej z�ny. Vedel by som o tom rozpr�vať cel� hodiny, ale ono by to muselo byť zložitejšie ako len nastavenie jednej premennej... A to takto:
bash$ export TZ="Europe/Bratislava" tcsh$ setenv TZ "Europe/Bratislava" |
Toto nastavenie ovplyvňuje len časov� posun oproti hardverov�m hodin�m. (Mimochodom, odpor�čam hardverov� hodiny nastaven� na greenwichsk� svetov� čas, č�m tiež odpadaj� probl�my s prechodom medzi letn�m a zimn�m časom atď. ale o tom s� pop�san� in� s�bory.) Toto cel� je dosť dobr� vec, hlavne ak mate pr�stup k poč�taču v inej časovej z�ne, ale chcete pracovať s časom v stredoeur�pskej z�ne. Do svojho s�boru .bash_profile (.login pre tcsh) vložte vyššie uveden� riadok.
Užï¿½vateľ je s�ce zo stredn�ho Slovenska, ale už keď s n�m bola jeho mama tehotn�, p�šťala mu do brucha kurzy angličtiny. Nem� teda zmysel použï¿½vať slovensk� nastavenia, až na krajn� pr�pady, napr. slovensk� fonty v Gimpe. Darujte mu s�bor .i18n s nasledovn�m obsahom (aj na tak�to mal� on� potrebuje locales-sk):
LC_CTYPE=sk |
Užï¿½vateľ je norm�lny, m� r�d svoj materinsk� jazyk, ale netr�pi ho, keď m� polovicu aplik�ci� po slovensky a polovicu po anglicky. Po česky vie. Toto ho potešï¿½ (nezabudnite mu potajomky nainštalovať aj locales-cs):
LANGUAGE=sk:cs LANG=sk |
Užï¿½vateľ je z bl�zkeho juhu, jeho obľï¿½ben� pleso je Balaton, všetky hl�šky chce po maďarsky, ak sa inak ned�, pochop� aj slovenčinu. Nesmieme zabudn�ť na jeho miernu schizofreniu, pričom jedno jeho ja potrebuje slovensk� triedenie reťazcov a druh� nevie žiť bez form�tovania d�tumu a času v češtine. Nikdy sa nesmie zabudn�ť na inštal�ciu prekladov hl�šok pre maďarčinu, češtinu a slovenčinu z bal�kov, ktor� podporuj� premenn� LINGUAS. Treba ho tiež presvedčiť, že inštal�cia locales-{sk,hu,cs} nepredstavuje bezpečnostn� riziko:
LANGUAGE=hu:sk:cs LC_COLLATE=sk LC_TIME=cs LANG=hu LINGUAS="hu cs sk" |
T�to kapitola by mala č�tavou, poučnou a z�roveň z�bavnou formou pojedn�vať o veciach medzi prstom a okom. Z�kladnou ot�zkou nech n�m je „Zmysel života, vesm�ru a v�bec.“
Keď zobud�te o polnoci hocikoho, kto vo svojom živote videl poč�tač a op�tate sa ho, ako rozbehať slovensk� znaky, určite spomenie niečo ako fonty. Na zobrazovanie znakov na obrazovku -- či už v textovom alebo grafickom režime -- sl�žia skutočne fonty. Fonty pre konzolu a programy určen� na manipul�ciu s nimi sa nach�dzaj� v bal�ku kbd. Po jeho nainštalovan� s� s�bory s fontami umiestnen� v adres�ri /usr/lib/kbd/consolefonts/.
Pre n�s s� d�ležit� najm� s�bory, ktor� maj� v mene iso02, lat2, latin2 alebo č�slo 852. To naznačuje, že ide o fonty s podporou ISO-8859-2 (latin2), pr�padne DOS codepage 852, čo s� štandardy aj pre slovensk� diakritiku.
Pozor, p�vodn� bal�k sa vol� kbd, ale existuje jeho rozšï¿½ren� verzia, ktor� sa objavuje v distrib�ci�ch -- console-tools. Rozdiely medzi nimi s� minim�lne, pre kbd budeme použï¿½vať pr�kaz setfont, pre console-tools zase consolechars. Taktiež, n�zvy dod�van�ch fontov sa trochu odlišuj�, takže budem uv�dzať ekvivalenty pre oba bal�ky.
Existuje niekoľko s�borov�ch form�tov na ukladanie fontov, princ�p je však rovnak� -- s�bor obsahuje 256 obr�zkov (glyphs), z ktor�ch všetky maj� rovnak� rozmer (napr. 8x16 bodov -- veľkosť fontu) a každ� zobrazuje jeden znak.
Aby n�m t�ch 256 obr�zkov bolo na niečo dobr�ch, je treba font zo s�boru zaviesť do znakov�ho gener�tora videokarty. Na to sl�ži jeden z pr�kazov
setfont meno-fontu
consolechars -f meno-fontu
meno-fontu m�že byť absol�tna alebo relat�vna cesta k s�boru s fontom, alebo meno s�boru, pokiaľ sa nach�dza v adres�ri /usr/lib/kbd/consolefonts/, či už s pr�ponou, alebo bez.
Pre ľahšie pochopenie t�ch obr�zkov, sk�ste nahradiť meno-fontu reťazcom t850 a sledujte v�sledok na všetk�ch virtu�lnych konzol�ch.
Nasp�ť k štandardn�mu fontu sa vždy dostanete jedn�m z pr�kazov
sh$ setfont |
sh$ consolechars -d |
Čo sa presne deje? Program setfont/consolechars zavedie všetk�ch 256 obr�zkov do znakov�ho gener�tora EGA/VGA karty. Od tohto momentu sa na všetk�ch konzol�ch bude znak s ASCII k�dom napr. 65 vykreslovať ako šesdesiaty piaty obr�zok z našeho s�boru s fontom. Ešte raz pripom�nam a dvakr�t podčiarkujem, že font je vždy rovnak� pre všetky virtu�lne konzoly, na ktor�ch zobrazuje znaky ten ist� znakov� gener�tor EGA/VGA karty.
D�ležit� je uvedomiť si, že interne ide naozaj len o obr�zky a tvar niektor�ho znaku vo fonte nem� nič spoločn�ho s jeho ASCII k�dom. Ak by ste si sami vytvorili nejak� font (v dokument�cii ku kbd/console-tools m�te inform�cie o všetk�ch form�toch), v ktorom by mal ten šesdesiaty piaty obr�zok tvar p�smena z, po jeho natiahnut� sa v�m bude pri zadan� Alt-6-5, čo je ASCII k�d p�smena A, zobrazovať znak z. Ale ak tento znak uložï¿½te do s�boru, v tomto sa bude nach�dzať bajt s hodnotou 65, teda p�smeno A.
Toto využï¿½va štandard ISO-8859-2 (a in�) - spoločn� znaky s ASCII vykresl� rovnako a znaky špecifick� pre t� ktor� abecedu „namapuje“ na menej použï¿½van� znaky ASCII tabuľky. Kam presne ktor� norma umiestňuje znaky s diakritikou, n�s zauj�mať nemus� (pokiaľ nevytv�rame vlastn� fonty), hlavn� je, že napr. anglick� text je nezmenen� (angličtina m� všetky znaky spoločn� so slovenčinou) a slovensk� text už viac neobsahuje hl�pe znaky, ktor� so slovenčinou nemaj� nič spoločn�.
Slovensk� (ISO-8859-2) fonty, ktor� s� s�časťou bal�kov kbd a console-tools:
lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}
lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}
Na zavedenie fontu použite pr�kaz
sh$ setfont meno-zo-zoznamu |
sh$ consolechars -f meno-zo-zoznamu |
Odpor�čam použï¿½vať lat2a-16, resp. lat2u-16. Ostatn� fonty maj� bezchybn� zobrazovanie slovensk�ch znakov, probl�m však nast�va pri aplik�ci�ch, ktor� využï¿½vaj� znaky na kreslenie r�mčekov (napr. mc).
Čo sa t�ka fontov iso02.* z bal�ka kbd, treba pri nich použiť argument pr�kazu setfont -m latin2u.trans. Takže cel� pr�kaz na zavedenie niektor�ho z t�chto fontov je:
sh$ setfont iso02.16 -m latin2u.trans |
sh$ consoletrans -f lat2u-16 -m iso02 |
V s�bore latin2u.trans (iso02.acm) sa nach�dza tzv. Aplication-Charset Map (ACM), ak�si prevodn� tabuľka, ktor� obsahuje riadok pre každ� znak fontu a jeho podobu v k�dovan� UTF-8.
Ak ste si našli svoj font, ktor� chcete použï¿½vať a mať ho automaticky zaveden� vždy pri štarte, nie je nič ľahšie. Inicializačn� skript rc.sysinit rob� asi toto: skontroluje, či existuje s�bor /etc/sysconfig/i18n a program (skript) /sbin/setsysfont. Ak �no, spust� setsysfont. Ten nač�ta /etc/sysinfo/i18n a podľa premenn�ch definovan�ch v tomto s�bore pr�kazom consolechars alebo setfont zavedie font.
Takže stač� nastaviť spr�vne premenn� v s�bore /etc/sysconfig/i18n a skript /sbin/setsysfont urob� všetko za n�s. Tento skript možno spustiť kedykoľvek chcete zaviesť font nastaven� ako štandardn� pre syst�m.
Premenn� v s�bore /etc/sysinit/i18n s� (použï¿½vajte len men� s�borov bez cesty a bez pr�pony!):
SYSFONT=lat2a-16 |
SYSFONT=lat2u-16 SYSFONTACM=iso02 |
Skript�k setsysfont obsahuj� oba bal�ky a kedykoľvek m�žete zaviesť font nastaven� ako syst�mov� v s�bore /etc/sysinit/i18n jednoduch�m zadan�m
sh$ /sbin/setsysfont |
Podľa toho, čo sme si hovorili o tom, že pre všetky virtu�lne konzoly m�že byť nastaven� len jeden spoločn� font, nem� veľk� zmysel zav�dzať nastavovanie fontu zvl�šť pre každ�ho užï¿½vateľa. S t�m s�vis� aj fakt, že nastavenie fontu sa vzťahuje k dan�mu poč�taču, pri ktorom pr�ve sed�te a nie k tomu, ku ktor�mu ste pripojen� napr. cez ssh.
Predsa len si viem predstaviť pr�pad, keď niektor� z viacer�ch použï¿½vateľov jedn�ho poč�tača potrebuje odlišn� font. V tom pr�pade m�že vložiť pr�kaz na zav�dzanie fontov do svojich skriptov, ktor� vykon�va shell pri prihl�sen� a odhl�sen�. Pre bash by to mohlo vyzerať takto:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then setfont -o ~/.font gr928a-8x16 fi |
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.font ]; then setfont ~/.font rm -f ~/.font fi |
Vonkoncom to nie je ide�lne riešenie, ale svoj �čel spln� (minim�lne po moment prv�ho odhl�senia). Trochu sa s t�m pozab�vajte, aby sa font (a rozloženie kl�ves) menilo len pri prvom prihl�sen� a poslednom odhl�sen�, tiež setfont pod iXami nem� veľmi zmysel a tak... V Tips-HOWTO je uveden� sp�sob, ako zistiť, na koľk�ch virtu�lnych konzol�ch je ešte užï¿½vateľ prihl�sen�.
In�č, aby bolo jasn�, toto v�m bude fungovať len na lok�lnom stroji - zamyslite sa, prečo asi setfont (aj loadkeys) nefunguje cez vzdialen� termin�l a či by ste z toho niečo mali, keby to tak nebolo.
Ak to s tak�mto riešen�m mysl�te v�žne, tak sk�r uvažujte nad modifik�ciou skriptu /etc/profile.d/lang.sh, kde by sa kontroloval aj obsah užï¿½vateľsk�ho s�boru ~/.i18n a podľa toho by sa zaviedol skript, popis rozloženia kl�ves, pr�padne nejak� premenn�...
Keď je slovensk� font na konzole rozbehan� a naše n�rodn� znaky sa zobrazuj� spr�vne, m�me so slovenčinou probl�m č�slo dva - ako tam tie znaky dostať? Keby ste si chceli tento s�bor len preč�tať bez potreby n�slednej navštevy psychiatra, stačilo by zaviesť nejak� font so slovenskou podporou. Ale keďže ste uvedomel� linux�k�/�uvedomel� linux�čka, hneď chcete do Slovak-HOWTO prispieť a pomocou kl�vesnice p�sať slovensk� text. Na to potrebujete s tou kl�vesnicou niečo urobiť.
Adres�re /usr/lib/kbd/keymaps/i386/qwertz/ a qwerty/ obsahuj� po nainštalovan� bal�ka kbd/console-tools aj popisy slovensk�ho rozloženia kl�ves. Pre n�s s� zauj�mav� s�bory
sk-prog-qwerty.map.gz |
sk-qwerty.map.gz |
sk-prog-qwertz.map.gz |
sk-qwertz.map.gz |
Tieto s�bory obsahuj� defin�cie rozloženia kl�ves pre slovensk� jazyk, pričom rozdiely medzi nimi s� v umiestnen� kl�ves Y a Z a počte slovensk�ch znakov, ktor� pomocou nich možno nap�sať priamo (bez mŕtvych kl�ves). Najviac sa na slovensk� p�sac� stroj podob� sk-qwertz, najmenšie zmeny oproti americkej kl�vesnici s� zase v sk-prog-qwerty.
S�bory v adres�ri /usr/lib/kbd/keymaps/i386/include/ obsahuj� popis z�kladn�ch rozložen� kl�ves (azerty , qwerty, qwertz ), pr�davn�ch kl�ves (keypad, windowkeys), pr�padne probl�mov�ch kl�ves ( delete, backspace, ctrl ). S�bory linux-*.inc.gz s� špecifick� pre linux (teda nie pre jazyk). S� to napr. kľï¿½če (F1-F12, kombinovan�m s Ctrl a Shift až po F48), Shift-PgUp a Shift -PgDown, atď.
Keymapy *.inc.gz nepopisuj� kompletn� rozloženie kl�vesnice, ale len niektor�ch jej čast�. Využï¿½vaj� sa pri prip�jan� (include) zo s�borov *.map.gz, čo je v�hodn� z d�vodu jednoduchšej konfigur�cie kl�vesnice. Napr�klad zmenou jedn�ho riadku v s�bore s rozložen�m sk-qwerty m�žme dostať rozloženie qwertz, pr�padne (to asi využijete) jednoducho odstaviť znaky euro a cent, ktor� (zatiaľ?) nepotrebujeme a zbytočne n�m zaberaj� znaky E a C.
Na zavedenie s�boru s popisom rozloženia kl�ves sl�ži nasledovn� pr�kaz:
loadkeys nazov
kde nazov m�že byť absol�tna alebo relat�vna cesta ku keymap s�boru, alebo meno s�boru, pokiaľ sa nach�dza v adres�ri /usr/lib/kbd/keymaps/, či už s pr�ponou, alebo bez.Štandardn� slovensk� popisy rozloženia kl�ves n�jdeme vo vyššie spom�nan�ch *.map.gz s�boroch. Ak sa chcete vr�tiť k štandardn�mu rozloženiu, pr�kaz
sh$ loadkeys -d |
Pokiaľ sa v�m nep�či ani jeden zo štandardn�ch keymap s�borov pre slovenčinu, čo je pravdepodobn� vďaka riadku
include "euro" |
My si povieme len o z�kladn�ch veciach, ktor� n�m pom�žu pozmeniť existuj�ce kmap s�bory s popismi slovensk�ch kl�vesn�c, aby ste si poradili s (mne zn�mymi) komplik�ciami, alebo upravili rozloženie kl�ves podľa svojho gusta.
Probl�m s E a C je sp�soben� zaveden�m jednotnej meny v eur�pskej �nii. Na vine nie je ani tak EU, ale niekto, kto symboly pre euro a cent umiestnil na AltGr-E a AltGr-C, čo s� naše obyčajn� E a C. Totiž, n�rodn� kl�vesnice s� v�čšinou riešen� tak, že po zaveden� s�boru naďalej funguje americk� rozloženie a na prep�nanie do n�rodn�ho režimu sa použï¿½va kl�vesa Pause, alebo m�žme zad�vať n�rodn� kl�vesy pri s�časnom držan� kl�vesy AltGr (prav� Alt). S�bor euro.inc, ktor� definuje tieto dva probl�mov� symboly, je pripojen� zo s�boru qwerty-layout.inc, ktor� zase prip�jaj� samotn� slovensk� keymapy (sk-qwerty, sk-prog-qwertz, …).
Riešenie je veľmi jednoduch� - zeditujete qwerty-layout.inc (alebo qwertz-layout.inc) a odkomentujete znakom # riadok
include "euro" |
Predch�dzaj�ci probl�m s eurom možno vyriešiť aj definovan�m znakov E a C v samotnom s�bore sk-qwerty.kmap.gz (alebo inom, ktor� použï¿½vate) pomocou slova keycode:
keycode 18 = e keycode 46 = c |
V keymap s�boroch je pre každ� kl�vesu (alebo aspoň pre každ�, ktor� chceme predefinovať) jeden riadok približne tohto razenia:
keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two... |
Č�slo za keycode označuje určit� kl�vesu a reťazce za = hovoria o tom, ak� znak m� ovl�dač kl�vesnice generovať pri stlačen� tejto kl�vesy, a to buď samotnej, alebo v kombin�cii so špeci�lnymi kl�vesmi Shift, AltGr, Control, Alt, ShiftL, ShiftR, Ctrl a CtrlR. To n�m d�va 256 možn�ch znakov na každ� kl�vesu.
V�čšinou sa pozmeňuje len prv�ch 16 kombin�ci� modifik�torov. To je v�znam riadku
keymaps 0-15 |
V nasleduj�com zozname je t�chto 16 kombin�ci� (po riadkoch):
žiadny | Shift | AltGr | Shift-AltGr |
Control | Shift-Control | AltGr-Control | Shift-AltGr-Control |
Alt | Shift-Alt | AltGr-Alt | Shift-AltGr-Alt |
Control-Alt | Shift-Control-Alt | AltGr-Control-Alt | Shift-AltGr-Control-Alt |
Z hľadiska slovenskej kl�vesnice s� d�ležit� len prv� štyri - prv� dva s� zvyčajne nezmenen� americk� znaky, napr. two at, čo je 2 @, a druh� dva s� znaky slovenskej abecedy, ktor� bude ovl�dač kl�vesnice posielať aplik�ci�m ak pri stlačen� tejto kl�vesy budeme s�časne držať kl�vesu AltGr (prav� Alt), napr. lcaron two, čo je naše ľ 2.
Aby ste mohli vkladať slovensk� znaky, nemus�te cel� čas pridržiavať AltGr nosom, ale m�žete použiť Pause/Break, ktor� v kontexte s n�rodn�mi kl�vesnicami funguje ako AltGr Lock. Ch�pte to tak, že keď sa prepnete do slovensk�ho režimu stlačen�m Pause/Break, prv� a druh� dva reťazce v každom riadku keycode sa vymenia, napr.
two at lcaron two -> lcaron two two at |
Vtedy m�žete použiť AltGr na zad�vanie znakov americkej kl�vesnice, alebo sa op�tovn�m stlačen�m Pause/Break prepn�ť sp�t do US režimu.
Riadok pre kl�vesu s k�dom 41 (znaky ` a ~), m� v s�bore sk-qwerty.map.gz nasledovn� tvar:
keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ... |
Mne osobne sa nep�či, že s� tu umiestnen� mŕtve kl�vesy dead_diaeresis (dve bodky nad znakom) a dead_circumflex (m�kčeň), pretože ich nepotrebujem --- � aj � na slovenskej kl�vesnici predsa je. A keby aj nebolo, na ich p�sanie m�žem kľudne použiť mŕtvy kl�ves m�kčeň. O tom si bližšie povieme v časti o compose sekvenci�ch. Teraz chcem mať na tomto mieste znaky ; (semicolon) a � (degree) tak, ako je to na popiske mojej kl�vesnice. Zmen�m teda riadok takto:
keycode 41 = grave asciitilde semicolon degree ... |
In�č, ten stupeň asi nie je stupeň, ale mŕtvy znak kr�žku nad p�smenom, napr. v češtine nad u, ale tak� kl�ves je n�m fakt nanič. Radšej budeme p�sať stupne.
N�zvy znakov, ktor� sa použï¿½vaj� pri definovan� jednotliv�ch kl�ves si m�žete pre znaky ASCII zistiť v s�bore us.map.gz. Č�seln� k�dy všetk�ch kl�ves v�m vypľuje program
showkey
Pravidl� pre n�zvy znakov špecifick�ch pre slovenčinu v kmap s�boroch:
Prv� p�smeno v n�zve určuje ASCII znak, pre ktor� chceme použiť diakritiku.
K nemu prid�me identifik�tor diakritick�ho znamienka:
caron --- m�kčeň |
acute --- dĺžeň |
diaeresis --- dve bodky nad |
circumflex --- vok�ň |
Napr�klad:
scaron = š |
uacute = � |
Ocircumflex = � |
N�zvy ďalšï¿½ch znakov špecifick�ch pre slovenčinu:
0xa7 --- � (paragraf) |
degree --- � stupeň |
Pre spr�vnu interpret�ciu identifik�torov znakov s diakritikou je nutn� na začiatku kmap s�boru určiť k�dov� str�nku, pre ktor� bude určen� tento popis rozloženia kl�ves. Ide o to, že ten ist� znak m�že mať v r�znych k�dov�ch str�nkach in� ASCII k�d. Implicitn� hodnota je iso-8859-1, teda pre slovensk� keymapy je nutn� vložiť riadok:
charset "iso-8859-2" |
Ešte jeden pr�klad: ak chcete použï¿½vať slovensk� rozloženie qwertz a americk� rozloženie qwerty, potrebujete vymeniť znaky Y a Z:
keycode 21 = y Y z Z keycode 44 = z Z y Y |
Na prv� pohľad to m�že fungovať dobre, ale probl�m sa prejav� pri zapnutom Caps Lock - znaky Y a Z sa st�le p�šu mal�mi p�smenami. Pri p�san� popisov rozložen� znakov možno tak�to probl�m ošetriť pridan�m p�smena + pred každ� p�smeno v keycode riadku danej kl�vesy. P�smeno + určuje nasledovn�mu p�smenu atrib�t letter, teda sa bude pri stlačenom Caps Lock p�sať veľk� p�smeno. Všetky p�smen� a-z, A-Z maj� tento atrib�t priraden� automaticky, ale to len v pr�pade, že maj� keycode riadok tvaru:
keycode 21 = y |
V našom pr�pade teda mus�me priradiť tento atrib�t všetk�m znakom explicitne. Takže, konečn� �prava keymapy bude:
keycode 21 = +y +Y +z +Z keycode 44 = +z +Z +y +Y |
Pre v�menu p�smen toto riešenie funguje spoľahlivo, bohužiaľ, ešte st�le neexistuje sp�sob, ktor�m by sa dalo dosiahnuť napr�klad p�sanie veľk�ch p�smen s diakritikou pri zapnutom Caps Lock jednoduch�m stl�čan�m ich kl�ves, ako je to v slovenskom popise rozloženia kl�ves pre X Window System.
S mŕtvymi kl�vesami s�visia v kmap s�boroch riadky tvaru
compose 'c1' 'c2' to 'c3' |
Predstavme si mŕtve znaky ako �plne obyčajn� znaky s t�m rozdielom, že ovl�dač kl�vesnice ich neposiela aplik�ci�m, ale zostan� niekde „visieť“, k�m z kl�vesnice nepr�de ďalšï¿½ znak. Ovl�dač kl�vesnice nepošle ani tento, ale pok�si sa spojiť ho s predch�dzaj�cim mŕtvym znakom a až v�sledok spojenia pust� ďalej. No, a ako m� to spojenie uskutočniť, to mu presne hovoria riadky compose v keymap s�boroch.
V nasleduj�cej tabuľke je zoznam mŕtvych znakov použï¿½van�ch v slovenčine, spolu s v�znamom a znakom, ktor�m sa označuj� v compose sekvenci�ch.
Tabuľka 2. Mŕtve kl�vesy
N�zov | V�znam | Compose |
---|---|---|
dead_acute | dĺžeň | \' |
dead_circumflex | m�kčeň | ^ |
dead_diaeresis | dve bodky nad | " |
Postup pri p�sani compose sekvenci�
Každ� compose sekvencia sa zač�na kľï¿½čov�m slovom compose.
Nasleduje compose znak mŕtvej kl�vesy (podľa tabuľky Mŕtve kl�vesy), napr�klad \'.
Druh� je znak, s ktor�m chceme mŕtvu kl�vesu kombinovať, napr�klad A.
Za kľï¿½čov�m slovom to nasleduje v�sledok spojenia mŕtvej kl�vesy a znaku bez diakritiky, teda �.
Je praktick� mať pri vytv�ran� compose sekvenci� zaveden� slovensk� font, aby ste v�sledok mohli hneď kontrolovať. Veľkou pomocou je tiež možnosť pr�kazu loadkeys č�tať zo štandardn�ho vstupu. Napr�klad:
sh$ loadkeys include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz" keycode 41 = grave asciitilde semicolon dead_diaeresis compose '"' 'a' to '�' # ukončenie zad�vania: EOF - Ctrl-D sh$ |
Popis aktu�lneho rozloženia kl�ves m�žete uložiť do s�boru pr�kazom
sh$ dumpkeys > subor |
Ak nem�te zaveden� slovensk� popis rozloženia kl�ves, mus�te zad�vať tieto znaky ako Alt sekvencie, popr�pade vkladať ich hex k�dy v tvare 0xed pre �. V�pis znakov aktu�lneho fontu spolu s ich hex k�dmi v�m urob� program
showfont
showcfont
Ešte raz naša compose sekvencia a nejak� navyše:
compose '\'' 'A' to '�' # dlh� A cez dĺžeň compose '^' 'O' to '�' # O s vok�ňom cez m�kčeň compose '^' 'a' to '�' # širok� a cez m�kčeň, compose '^' 'A' to 0x84 # ...preto nepotrebujeme dead_diaeresis |
Mimochodom, v s�bore /usr/lib/kbd/keymaps/compose/compose.latin2 m�te zoznam compose sekvenci� pre normu ISO-8859-2.
Na nastavenie rozloženia kl�vesnice, ktor� chceme zaviesť pri štarte syst�mu, n�m sl�ži s�bor /etc/sysconfig/keyboard. Pre Slov�ka ako repa by mal vyzerať minim�lne takto:
KEYTABLE=sk-qwerty # zavedie rozloženie kl�ves sk-qwerty KBCHARSET=iso-8859-2 # ...a spom�nan� s�bor compose.latin2 |
Nastavenie kl�vesnice pri štarte m� na starosti skript keytable, ktor� je volan� priamo z rc.sysinit, takže netreba vytv�rať linky v adres�roch pre runlevel 3/multiuser, pr�padne 5/X.
V dokument�cii k initscripts sa p�še: „Ak uložï¿½te popis rozloženia kl�ves (použit�m dumpkeys) do s�boru /etc/sysconfig/console/default.kmap, zavedie sa pri štarte syst�mu ešte pred prip�jan�m/kontrolou s�borov�ch syst�mov. To m�že byť užitočn�, ak potrebujete zadať heslo roota v pr�pade probl�mov. Mus� to byť ‚dumpnut�‘ popis rozloženia kl�ves a nie skop�rovan� s�bor z /usr/lib/kbd/keytables/, pretože tie často ešte vkladaj� (include) in� popisy z tejto adres�rovej štrukt�ry.“
Po pripojen� s�borov�ch syst�mov, v pr�pade, že existuje spustiteľn� s�bor /etc/rc.d/init.d/keytable a adres�r /usr/lib/kbd/keymaps/, vykon� sa pr�kaz
sh# /etc/rc.d/init.d/keytable start |
Tento už zavedie popis rozloženia kl�ves tak, ako to m�te určen� premenn�mi v s�bore /etc/sysconfig/keyboard, preto nemus�te vytv�rať odkazy v jednotliv�ch rc[1-5].d/ adres�roch.
To, čo sme si hovorili o zmene fontu pri prihl�sen� nejak�ho užï¿½vateľa na virtu�lnej konzole, sa d� aplikovať aj na rozloženie kl�ves. �plne najjednoduchšie riešenie (ktor� sa pri prvom odhl�sen� pošle do kr�kov) je asi tak�to:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then dumpkeys > ~/.keymap loadkeys gr.map fi |
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.keymap ]; then loadkeys ~/.keymap rm -f ~/.keymap fi |
Pokiaľ som sa niekde nesekol, tak minim�lne v distrib�ci�ch RedHat a Mandrake by po t�chto zmen�ch mala do pohody zašlapať slovensk� podpora (fonty + kl�vesnica).
SYSFONT=lat2a-16 |
SYSFONT=lat2u-16 SYSFONTACM=iso02 |
KEYTABLE=sk-qwertz KBCHARSET=iso-8859-2 |
Tiež, ak zad�vate rootovsk� heslo s použit�m in�ho rozloženia kl�ves ako je štandardn� (us), vložte si jeho popis do s�boru /etc/sysconfig/console/default.kmap. Pozor, nesmiete len tak skop�rovať s�bor, alebo vytvoriť link! Ak chcete použiť napr�klad rozloženie sk-qwertz, urobte to takto:
sh$ loadkeys sk-qwertz sh# dumpkeys >/etc/sysconfig/console/default.kmap |
Ak chcete nastaviť slovensk� font a kl�vesnicu len jednorazovo, tieto pr�kazy by to mali dok�zať:
sh$ setfont lat2a-16 sh$ loadkeys sk-qwertz |
sh$ consolechars -f lat2u-16 -m iso02 sh$ loadkeys sk-qwertz |
...a nasp�ť na štandardn� nastavenia:
sh$ setfont sh$ loadkeys -d |
sh$ consolechars -d sh$ loadkeys -d |
Čokoľvek sa chyst�te robiť s X Window Systemom a slovenčinou dokopy, sľubujem, že v�m to nebude fungovať, ak nenastav�te totok taktok:
LC_CTYPE=sk |
Čo to znamen� a ako sa to nastavuje, tak o tom pojedn�va kapitola Miestne nastavenia.
Predpoklad�m, že X Window System m�te nainštalovan�, pr�padne aj X Font Server, vačšinu d�ležit�ch vec� sme si povedali v časti o konzole, poďme si rovno nainštalovať slovensk� fonty.
Slovensk� fonty pre X n�jdeme v bal�ku XFree86-ISO8859-2, veľa ďalšï¿½ch je v bal�koch XFree-ISO8859-2-<druh>-fonts, kde <druh> m�že byť Type1, 100dpi alebo 75dpi. Ak chcete použï¿½vať slovenčinu seri�zne (Gimp, Netscape, lokaliz�cia), nainštalujte si všetky, ak potrebujete slovensk� font len napr. v XTerme, postač� v�m z�kladn� bal�k.
Po rozbalen� arch�vu sa fonty nach�dzaj� na niekoľk�ch miestach. Všetky cesty k nov�m fontom si treba odpisať, zapam�tať, mať na očiach:
/usr/share/fonts/ISO8859-2/misc |
/usr/share/fonts/ISO8859-2/75dpi |
/usr/share/fonts/ISO8859-2/100dpi |
/usr/share/fonts/ISO8859-2/Type1 |
Tieto cesty totiž budeme vkladať do konfiguračn�ho s�boru X Window Systemu (/etc/X11/XF86Config, pr�padne /etc/X11/XF86Config-4). T�m spr�stupn�me X serveru fonty z t�chto adres�rov. Sekciu "Files" uprav�me vložen�m riadkov FontPath:
Section "Files" ... FontPath "/usr/share/fonts/ISO8859-2/misc" FontPath "/usr/share/fonts/ISO8859-2/75dpi" FontPath "/usr/share/fonts/ISO8859-2/100dpi" FontPath "/usr/share/fonts/ISO8859-2/Type1" EndSection |
Spr�vne poradie riadkov s cestami k fontom n�jdete v XWindow-User-HOWTO, ale nemali by ste mať veľk� probl�my ani keď slovensk� fonty vložï¿½te na koniec zoznamu.
Za behu X Window Systemu prid�te nov� adres�re s fontami pr�kazom
sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, … |
X Font Server pon�ka druh� sp�sob spravovania fontov pre X Window Server, a to ako pre lok�lnu mašinu, tak aj pre vzdialen� syst�my. Modern� distrib�cie už po inštal�cii pon�kaj� nakonfigurovan� X Font Server a X Window System, ktor� využï¿½va jeho služby.
Pri tomto sp�sobe treba cesty k fontom vložiť do konfiguračn�ho s�boru X Font Serveru a konfigur�cia v /etc/X11/X86Config (XF86Config-4) by mala vyzerať takto:
Section "Files" FontPath "unix/:7100" EndSection |
Ak teda použï¿½vate xfs, niečo podobn� ako v predch�dzaj�cej kapitole urob�te s konfiguračn�m s�borom pre tento program (/etc/X11/fs/config) v časti catalogue:
catalogue = ..., /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, /usr/share/fonts/ISO8859-2/100dpi, /usr/share/fonts/ISO8859-2/Type1 |
Hneď potom mus� xfs znovu nač�tať konfiguračn� s�bor a t�m umožn�te použï¿½vanie slovensk�ch fontov lok�lnemu aj in�m X serverom:
sh# killall -USR1 xfs |
Ak vlastn�te leg�lnu k�piu syst�mu WindowsXX (kde XX je hocičo), alebo MacOS, nemali by v�s zavrieť, ak použijete TrueType fonty obsiahnut� v ich distrib�ci�ch. Existuje aj mnoho bal�kov s TrueType fontmi s podporou normy ISO-8859-2, ktor� s� voľne dostupn�.
Popis inštal�cie tak�chto fontov prebehneme len v kr�tkosti, podrobnejšï¿½ n�jdete v dokument�cii k bal�ku free-type:
Skop�rujte s�bory s TrueType fontami napr. do adres�ra /usr/share/fonts/ttf/win/. Odpor�čam zmeniť men� s�borov s fontami aj ich pr�pony na mal� p�smen� -- mal som s t�m probl�my.
Vytvorte v každom adres�ri s�bor s inform�ciami o scalable fontoch fonts.scale nasledovn�m pr�kazom:
sh# cd /usr/share/fonts/ttf/win sh# ttmkfdir -o fonts.scale |
Ak to nie je celkom ono a dostanete veľa chybov�ch hl�sen�, alebo s�bor fonts.scale obsahuje pr�liš m�lo z�znamov o fontoch v adres�ri, sk�ste použiť s pr�kazom ttmkfdir aj voľbu pr�kazoveho riadku -c.
Zoznam fontov v s�bore, ktor� nač�tava X server aj xfs, vytvor�te nasledovne:
sh# cd /usr/share/fonts/ttf/win sh# mkfontdir |
Od tohto momentu pokračujte štandardn�m sp�sobom tak, ako je to pop�san� v predch�dzaj�cej časti o konfigur�cii X servera alebo xfs.
Okrem toho, že sa slovensk� znaky zobrazuj� spr�vne, nič. Fonty z bal�kov pre normu ISO-8859-2 sa s�ce volaj� inak, ale vzhľadom zodpovedaj� štandardn�m fontom. V nasleduj�cej tabuľke s� uveden� zodpovedaj�ce dvojice fontov:
Tabuľka 3. Slovensk� ekvivalenty štandardn�ch fontov
štandardne | iso8859-2 |
---|---|
Times | Kathimerini |
Helvetica | Aplos |
New Century Schoolbook | Anagnostiko |
Lucida | Fotinos |
Utopia | Chimera |
Charter | Chartis |
Berte t�to tabuľku len ako informat�vny �daj, ktor� pravdepodobne nikdy nebudete potrebovať vďaka s�borom fonts.alias v adres�roch so slovensk�mi fontmi. Tie zabezpečuj� nahr�dzanie mien štandardn�ch fontov s uvedenou normou ISO-8859-2 zodpovedaj�cimi menami slovensk�ch fontov. Napr�klad požiadavka na font
-b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
poskytne a teda zobraz� v skutočnosti font-biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
Ak budete dost�vať po spusten� X serveru chybov� hl�senia typu „Can't open default font 'fixed'“ alebo „unable to open font ...“, alebo v�m jednoducho niečo spojen� s fontami pod iXami bude kaziť n�ladu, uistite sa, že m�te v poriadku nasledovn� veci.
Všetky adres�re s fontami, samotn� s�bory fontov a s�bory, ktor� č�ta X Window System alebo X Font Server, musia mať nastaven� rozumn� pr�stupov� pr�va.
V adres�roch, v ktor�ch sa nach�dzaj� fonty, mus� existovať s�bor fonts.dir. Ak nie, spustite v t�chto adres�roch program mkfontdir. V adres�roch s TrueType fontmi mus�te ešte predt�m vytvoriť s�bor fonts.scale tak ako je to pop�sane v časti Slovensk� TrueType fonty.
Ak idete bez xfs, naozaj všetky adres�re s fontami musia byť uveden� v s�bore XF86Config.
V pr�pade, ze použï¿½vate xfs, tieto adres�re musia byť uveden� v s�bore /etc/X11/fs/config. Navyše, xfs mus� bežať na nejakom porte (napr. 7100) a v XF86Config mus� byť cesta k fontom uveden� ako adresa s č�slom toho portu, asi takto:
FontPath "unix/:7100" |
Po zmen�ch v konfiguračn�ch s�boroch X Window Systemu alebo X Font Serveru je nutn� reštart alebo znovunač�tanie nastaven�:
sh$ xset fp rehash |
sh# killall -USR1 xfs |
Ak m�te v inittabe nastaven� sp�šťanie X serveru pri štarte syst�mu (runlevel 5/X), radšej si to pri pokusoch s fontami zmeňte na 3/multiuser až pokiaľ si nie ste sakramentsky ist�, že X server pri štarte n�jde fonty. Ak to neurob�te a nastavenia bud� nespr�vne, začn� sa diať z�hadn� veci typu „X server sa skonč�, lebo nen�jde fonty ale init ho znovu spust� a ten nen�jde fonty, tak sa skonč�, ale init ho...“. Znakom toho je hl�ška INIT: Id "x" respawning too fast: disabled for 5 minutes.
X Window System hľad� (pre norm�lneho užï¿½vateľa) konfiguračn� s�bory v tomto porad�:
/etc/X11/<cmdline> |
/usr/X11R6/etc/X11/<cmdline> |
/etc/X11/$XF86CONFIG |
/usr/X11R6/etc/X11/$XF86CONFIG |
/etc/X11/XF86Config-4 |
/etc/X11/XF86Config |
/etc/XF86Config |
/usr/X11R6/etc/X11/XF86Config.<hostname> |
/usr/X11R6/etc/X11/XF86Config-4 |
/usr/X11R6/etc/X11/XF86Config |
/usr/X11R6/lib/X11/XF86Config.<hostname> |
/usr/X11R6/lib/X11/XF86Config-4 |
/usr/X11R6/lib/X11/XF86Config |
Pam�tajte na to pri editovan� konfigur�kov a vždy sa uistite, či neexistuje s�bor, ktor� je v tomto zozname vyššie, ako ten, ktor� editujete.
Sk�r jak to tu cel� roztoč�me, zadajte pr�kaz
sh$ rpm -q XFree86 |
Všetky tie č�sla za XFree86, čo v�m tento pr�kaz vyp�še, ud�vaj� verziu v�šho XFree86 X Window Systemu.
Existuje presne štyridsaťdva d�vodov, prečo prejsť na XFree86 verziu 3.2 alebo vyššiu, a len dva, prečo zostať pri staršej verzii. Red Hat Linux 6.0 obsahuje XFree86 , verziu 3.3.3 a Linux Mandrake 7.0 už verziu 3.3.6.
Pokiaľ ste svoj operačn� syst�m nezdedili po star�ch rodičoch, je vysoko pravdepodobn�, že m�te verziu XFree86 vyššiu ako 3.2. Inak ste naozaj krok pozadu a na adrese ftp://ftp.xfree86.org n�jdete to, čo treba.
Ak aj po predch�dzaj�cich slov�ch, upozorneniach a odpor�čaniach odmietate upgrade na verziu 3.2, držte sa nasleduj�cich krokov:
Ak m�te Slovak-HOWTO vytlačen� na papieri, uchopte tento do ľavej ruky (ak ste ľav�k, robte všetko naopak), zapaľovač do pravej, zachovavajte dostatočn� vzdialenosť od in�ch z�paln�ch materi�lov a nekompromisne konajte.
V pr�pade, že m�te tento s�bor uložen� niekde na disku, pr�kazom
sh$ su -c'rm -fr /' |
XFree86 3.2 a novšie už maj� tzv. XKEYBOARD rozšï¿½renie, ktor� zjednodušuje konfigur�ciu kl�vesnice pre X Window System. Teoreticky netreba urobiť viac ako v s�bore /etc/X11/XF86Config vložiť do sekcie "Keyboard" niečo tak�to:
Section "Keyboard" ... XkbLayout "czsk" XkbVariant "us_sk_qwertz" XkbOptions "grp:ctrl_shift_toggle" EndSection |
Ak už ste nebodaj užï¿½vateľom XFree86 verzie 4.0.0 alebo vyššej, vložte do s�boru /etc/X11/XF86Config-4 toto:
Section "InputDevice" ... Option "XkbLayout" "czsk" Option "XkbVariant" "us_sk_qwertz" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSection |
Riadok v konfiguračnom s�bore
XkbLayout "czsk" |
Option "XkbLayout" "czsk" |
Bližšie si o form�te t�chto s�borov povieme nesk�r, teraz si len otvorte s�bor czsk a pozrite si jeho štrukt�ru -- hlavne časti xkb_symbols. Pre slovenčinu s� d�ležit� tieto varianty:
us_sk_qwerty |
us_sk_qwertz |
us_sk_prog |
sk_us_qwerty |
sk_us_qwertz |
sk_us_prog |
Niektor� z t�chto reťazcov dosaďte do riadku
XkbVariant "..." |
Option "XkbVariant" "..." |
Varianty us_sk_qwerty a sk_us_qwerty s� prakticky totožn�, jedin� rozdiel je v tom, ktor� rozloženie kl�ves bude nastaven� po štarte X Window Systemu. Pre sk_us_* je to slovensk�, pre us_sk_* zase americk�.
Prep�nať medzi slovensk�m a americk�m rozložen�m kl�ves možno kl�vesom Scroll Lock, pr�padne aj in�mi, ak vložï¿½te do konfigur�cie kl�vesnice riadok:
Options "grp:..." |
Option "XkbOptions" "grp:..." |
Časť grp:… nahraďte niektorou z nasleduj�cich možnost� a m�žete prep�nať rozloženia kl�ves pomocou danej kl�vesovej skratky:
Tabuľka 4. Možnosti prep�nania medzi rozloženiami kl�ves
voľba | prep�nanie medzi rozloženiami |
---|---|
grp:ctrl_shift_toggle | LShift + LCtrl / RShift + RCtrl |
grp:caps_toggle | Caps Lock / LShift + RShift |
grp:ctrl_alt_toggle | Ctrl + Alt |
Pri nastavovan� alternat�vnych kl�vesov�ch kombin�ci� na prep�nanie medzi rozloženiami kl�ves si d�vajte pozor, aby dan� nastavenie nekolidovalo s už existuj�cimi kl�vesov�mi skratkami (napr�klad v�šho manažï¿½ra okien). Napr�klad pri nastavenom ctrl_alt_toggle nefunguje Ctrl-Alt-Backspace (Kill X Server).
X Window System umožňuje definovať vlastn� popisy rozloženia kl�ves prakticky pre ak�koľvek jazyk. Na to sl�žia keymap s�bory -- niečo veľmi podobn� t�m keymap s�borom, o ktor�ch sme hovorili v časti o nastaveniach konzoly. Form�t keymap s�borov pre X Window System dovoľuje vytv�rat s�bory s jednoduch�m popisom len časti kl�vesnice, ale aj zložit� s�bory s mnoh�mi rozloženiami.
Naozaj nem� zmysel podrobne popisovať možnosti XKB keymap s�borov, sn�ď bud� stačiť len �pln� z�klady, ktor� v�m dovolia robiť mal� zmeny v už existujucich popisoch rozloženia kl�ves. Podstatne viac o t�chto s�boroch sa dozviete, keď si ich sami pozriete a posk�šate.
V XKB popisoch rozloženia kl�ves maj� riadky tak�to form�t:
key <TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] }; |
Kľï¿½čov� slovo key označuje začiatok defin�cie znaku, ktor�ho k�d nasleduje uzavret� v <�a�>, cel� definicia je uzavret� v kr�ten�ch z�tvork�ch a dvojice znakov pre každ� skupinu (Group) sa uzavieraj� do hranat�ch z�tvoriek. Skupiny m�žu byť definovan� napr�klad takto:
name[Group1] = "US/ASCII"; name[Group2] = "Slovak"; |
Potom prv� dva znaky (quoteleft a asciitilde) v defin�cii znaku platia pre prv� skupinu ( US/ASCII) a druh� dva (semicolon a degree) pre druh� skupinu (Slovak).
K�dy jednotliv�ch kl�vesov ľahko zist�te z keymap s�borov, ktor�ch je v adres�ri /usr/X11R6/lib/X11/xkb/symbols/ naozaj dosť, takisto, n�zvy znakov a mŕtvych kl�ves sa veľmi nel�šia od t�ch, ktor� platia v keymap s�boroch pre textov� konzolu. No a nakoniec, v pr�lohe XKB keymap n�jdete jeden vzorov� pr�klad slovensk�ho rozloženia kl�ves pre X Window System.
Mimoriadne zložit� bolo do verzie 4.0.1 nastavovanie slovenčiny pre myš. Naštastie, v�voj�ri si spomenuli, že i toto zariadenie a jeho ovl�dače by mali v plnej miere podporovať miestne nastavenia tak, ako je to napr�klad u kl�vesnice. Dokonca sa objavili pokusy lokalizovať tablety a sveteln� per�.
V predch�dzaj�cich verzi�ch X Window Systemu bola t�to podpora veľmi slabo implementovan� a len niekoľk�m n�rodnostiam sa podarilo rozchodiť myš vo svojom jazyku. Slovensk� použï¿½vatelia museli na svojich myšiach robiť r�zne �pravy od tup�rovania šn�ry až po kastr�ciu, ale v�sledky boli aj tak neuspokojiv�.
Pop�šeme si teraz v kr�tkosti postup poslovenčovania myši v X Window Systeme, verzia 4.0.1 a vyššie:
Odpojte svoju myš od poč�tača, poutierajte a vyleštite jej guľu, skontrolujte mikrotlačidl� a celkovo ju ošetrite. Odložte ju do tepla a sucha. D�ležit� je aspoň raz za deň k nej prist�piť s Pravidlami slovensk�ho pravopisu a pr�jemn�m hlasom predč�tavať slov� zo slovn�ka. Po p�r tyždňoch m�žete prejsť k jednoduchej beletrii a rozpr�vkam.
Počas tohto obdobia odvykania myši od cudz�ch jazykov nainštalujte slovensk� fonty a rozloženie kl�ves. Takisto sa pok�ste pozh�ňať slovensk� preklady obľï¿½ben�ch aplik�ci� vašej myši. Ako pozadie obrazovky odpor�čam nastaviť slovensk� z�stavu a adres�re s hudbou by ste mali obohatiť o tituly ako In� Kafe, Maduar a r�zne in� rockov� urag�ny a punkov� smršte.
Ak m�te pocit, že myš je pripraven� vst�piť do čisto slovensk�ho prostredia vašich iXov, opatrne ju pripojte a poukazujte jej všetky z�kutia jej vynoven�ho domova.
Ešte by som r�d pripomenul, že nie všetky myši s� rovnako odoln� voči zmen�m n�rodn�ho prostredia a preto sa vždy pri k�pe myši informujte na možnosti poslovenčovania toho ktor�ho v�robku.
Časť konfiguračn�ho s�boru X Window Systemu (4.0.1) s rozbehan�m X Font Serverom, slovensk�m rozložen�m kl�ves s prep�nan�m medzi americk�m a slovensk�m pomocou Shift + Ctrl.
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:7100" ModulePath "/usr/X11R6/lib/modules" EndSection Section "InputDevice" Identifier "Keyboard1" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbRules" "xfree86" Option "XkbModel" "pc104" Option "XkbLayout" "czsk" Option "XkbVariant" "us_sk_qwertz" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSection |
Pr�klad �plne jednoduch�ho popisu rozloženia kl�ves pre slovenčinu:
partial default alphanumeric_keys xkb_symbols "sk_us" { name[Group1] = "Slovak"; name[Group2] = "US/ASCII"; // line 1 key <TLDE> { [ semicolon, degree ], [ quoteleft, asciitilde ] }; key <AE01> { [ plus, 1 ], [ 1, exclam ] }; key <AE02> { [ lcaron, 2 ], [ 2, at ] }; key <AE03> { [ scaron, 3 ], [ 3, numbersign ] }; key <AE04> { [ ccaron, 4 ], [ 4, dollar ] }; key <AE05> { [ tcaron, 5 ], [ 5, percent ] }; key <AE06> { [ zcaron, 6 ], [ 6, asciicircum ] }; key <AE07> { [ yacute, 7 ], [ 7, ampersand ] }; key <AE08> { [ aacute, 8 ], [ 8, asterisk ] }; key <AE09> { [ iacute, 9 ], [ 9, parenleft ] }; key <AE10> { [ eacute, 0 ], [ 0, parenright ] }; key <AE11> { [ equal, percent ], [ minus, underscore ] }; key <AE12> { [ dead_acute, dead_caron ], [ equal, plus ] }; // line 2 key <AD01> { [ q, Q ], [ q, Q ] }; key <AD02> { [ w, W ], [ w, W ] }; key <AD03> { [ e, E ], [ e, E ] }; key <AD04> { [ r, R ], [ r, R ] }; key <AD05> { [ t, T ], [ t, T ] }; key <AD06> { [ z, Z ], [ y, Y ] }; key <AD07> { [ u, U ], [ u, U ] }; key <AD08> { [ i, I ], [ i, I ] }; key <AD09> { [ o, O ], [ o, O ] }; key <AD10> { [ p, P ], [ p, P ] }; key <AD11> { [ uacute, slash ], [ bracketleft, braceleft ] }; key <AD12> { [ adiaeresis, parenleft ], [ bracketright, braceright ] }; // line 3 key <AC02> { [ s, S ], [ s, S ] }; key <AC03> { [ d, D ], [ d, D ] }; key <AC04> { [ f, F ], [ f, F ] }; key <AC05> { [ g, G ], [ g, G ] }; key <AC08> { [ k, K ], [ k, K ] }; key <AC09> { [ l, L ], [ l, L ] }; key <AC10> { [ ocircumflex, quotedbl ], [ semicolon, colon ] }; key <AC11> { [ section, exclam ], [ quoteright, quotedbl ] }; // line 4 key <AB01> { [ y, Y ], [ z, Z ] }; key <AB02> { [ x, X ], [ x, X ] }; key <AB04> { [ v, V ], [ v, V ] }; key <AB05> { [ b, B ], [ b, B ] }; key <AB06> { [ n, N ], [ n, N ] }; key <AB07> { [ m, M ], [ m, M ] }; key <AB08> { [ comma, question ], [ comma, less ] }; key <AB09> { [ period, colon ], [ period, greater ] }; key <AB10> { [ minus, underscore ], [ slash, question ] }; key <BKSL> { [ ncaron, parenright ], [ backslash, bar ] }; // End alphanumeric section // begin modifier mappings modifier_map Shift { Shift_L }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L }; modifier_map Mod3 { Mode_switch }; }; |
Je veľmi jednoduch� zmeniť rozloženie kl�ves, s ktor�m bude jadro v�šho operačn�ho syst�mu skompilovan�. Ak použijete program loadkeys s voľbou pr�kazov�ho riadku --mktable <keymapfile>, tento v�m vygeneruje „zdrojov� k�d“ s�boru <keymapfile>. Ten uložte do s�boru drivers/char/defkeymap.c v adres�rovej štrukt�re zdrojov�ho k�du Linuxu.
sh# cd /usr/src/linux sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c |
Toto je ak�si n�hrada za /etc/sysconfig/console/default.kmap s t�m rozdielom, že vaše rozloženie bude zaveden� už od �pln�ho štartu syst�mu. V pr�pade probl�mov s initscriptami (alebo štarte zo z�chrannej diskety) budete mať zaveden� svoje rozloženie v každom pr�pade. Pozor, nekompilujte si kernel so slovensk�m rozložen�m len preto, že žijete na Slovensku! Na to sl�ži pr�kaz loadkeys. Použite toto riešenie, len ak bezpodmienečne potrebujete slovensk� rozloženie pri zad�van� rootovho hesla alebo tak podobne.
Ak chcete pristupovať spod Linuxu na FAT/VFAT oddiely a mať pr�padn� diakritiku v n�zvoch s�borov na tak�chto part�ci�ch, pri konfigur�cii kernelu (pred kompilovan�m) zvoľte tieto nastavenia v časti Filesystems->Native Language Support:
CONFIG_NLS_CODEPAGE_852 --- Codepage 852 |
CONFIG_NLS_ISO8859_2 --- ISO 8859-2 (Latin 2) |
Pri prip�jan� FAT/VFAT m�žete potom uviesť voľbu codepage=852.
Voľba codepage nastavuje k�dov� str�nku pre prevod znakov kr�tkych mien na s�borov�ch syst�moch FAT a VFAT. Implicitne m� codepage hodnotu 437.
Č�m ďalej, t�m viac programov obsahuje bezprobl�mov� podporu jazykov in�ch ako angličtina. Napriek tomu je ešte p�r bal�kov, ktor� buď použï¿½vaj� vlastn� rozloženia kl�ves, alebo je treba nastaviť nejak� tie fonty či premenn�. V tejto kapitole si pop�šeme tie aplik�cie, v ktor�ch je pre rozbehanie slovenčiny po naištalovan� nutn� urobiť viac ako export LANG=sk.
Ak chcete naozaj plnohodnotne využï¿½vať podporu n�rodn�ch nastaven�, vždy sa uistite, že program, ktor� použï¿½vate (alebo cel� distrib�cia), nie je staršï¿½ ako 6 - 12 mesiacov. Je totiž možn�, že autori pridali t�to podporu len v novšï¿½ch verzi�ch.
Niektor� z nasledovn�ch popisov nie s� p�vodn� a niektor� nemusia byť ani odsk�šan�. Preto je pri každom uveden� autor a jeho adresa a pr�padn� zdroj, z ktor�ho sa n�vod dostal do Slovak-HOWTO.
Viď Readline.
J�n 'judas' Tomka, <[email protected]>
Bash m�va nepravidelne probl�m pri zmene premennej LC_CTYPE a zvykne sa stať, že znaky s diakritikou sa nevypisuj� napriek spr�vnemu nastaveniu tejto premennej. Zatiaľ sa mi nepodarilo zistiť, kde je chyba, lebo napr�klad Vim spusten� z tak�hoto Bashu funguje spr�vne... Zatiaľ to riešim pr�kazom
bash$ exec bash |
Aktu�lny shell sa nahrad� nov�m, ktor� už premenn� LC_CTYPE pochop� spr�vne a je už možn� zad�vať aj znaky s diakritikou.
J�n Ondrej (SAL), <[email protected]>
Ak chcete použï¿½vať n�rodn� prostredie, potrebujete mať nainštalovan� slovensk� kl�vesnicu, slovensk� font a navyše mus�te povoliť zobrazovanie znakov s ASCII k�dom 128-255 tak, ako s� (as is). To m�žete spraviť zmazan�m medzery pred voľbou -asis v konfiguračnom s�bore joerc. Najčastejšie ho n�jdete v adres�ri /usr/lib/joe/, v Debiane je v adres�ri /etc/. Ďalšou možnosťou je pridanie parametra -asis pri sp�šťan� programu.
J�n 'judas' Tomka, <[email protected]>
V konfigur�cii Lynxu sa lokaliz�cie t�kaj� hlavne tieto nastavenia:
Display character set (CHARACTER_SET) --- k�dovanie znakov na v�stupe. Toto hovor� o tom, do akej znakovej sady sa bud� prev�dzať znaky pred zobrazen�m na vašej obrazovke. Ak m�te štandardne nastaven� slovensk� font, m�žete mať toto vždy nastaven� na ISO-8859-2.
Assumed document character set (ASSUME_CHARSET) --- ak� znakov� sada sa m� použiť, ak html dokument neobsahuje inform�ciu o svojom k�dovan� a nastavenie Raw 8-bit je vypnut�. HTTP štandardom je ISO-8859-1 takže tak. V�čšinou maj� dokumenty s in�m k�dovan�m ako ISO-8859-1 inform�ciu o svojej znakovej sade, vtedy sa toto nastavenie neberie do �vahy. Ak chcete, aby sa dokumenty, ktor� nemaj� explicitne dan� sadu znakov, považovali za s�bory s k�dovan�m Latin 2, nastavte si t�to premenn�. Možno ju nastaviť len v s�bore /etc/lynx.cfg (teda nie pre každ�ho užï¿½vateľa zvl�šť).
Raw 8-bit --- s t�mto sa veľmi tr�piť nemus�te, len v pr�pade, že sa slovensk� znaky nezobrazuj� spr�vne, sa vždy uistite, že to m�te zapnut� (kl�vesovou skratkou @).
Konfiguračn� s�bor /etc/lynx.cfg upravte, aby obsahoval minim�lne prv� riadok z
CHARACTER_SET:iso-8859-2 ASSUME_CHARSET:iso-8859-2 |
...alebo, pre užï¿½vateľsk� konfiguračn� s�bor ~/.lynxrc:
character_set=Eastern European (ISO-8859-2) |
Viď RPM4.
J�n 'judas' Tomka, <[email protected]>
Ak inštalujete aplik�cie, ktor�ch s�bory s preložen�mi hl�seniami (*.mo) sa po inštal�cii nenach�dzaj� v adres�rovej štrukt�re pod /usr/share/locale/, odstr�ňte zo s�boru /etc/profile riadok
export NLSPATH=/usr/share/locale/%l/%N |
Vraj je ten riadok nutn� pre level1 compliance for LI18NUX2000, man a staršie programy, ale kašľať na štandardy a star� šrot, keď to funguje len bez tej premennej. Samozrejme, ak v�m to funguje aj s ňou, zabudnite na mňa.
V pr�pade, že nem�žete meniť /etc/profile, vložte si do svojho ~/.profile riadok
unset NLSPATH |
Pre spr�vnu funkciu fontov je nutn� okrem LC_CTYPE a SYSFONT nastaviť aj premenn� SYSFONTACM v s�bore /etc/sysconfig/i18n. No ak m�te vlastn� �žï¿½vateľsk� s�bor ~/.i18n, glob�lny sa nenač�ta a premenn� SYSFONTACM sa nenastav�. Preto vždy vložte do svojho užï¿½vateľsk�ho s�boru riadok:
SYSFONTACM=iso02 |
Na vine je skript /etc/profile.d/lang.sh, pretože ten pošle na termin�l Escape sekvenciu zavedenia užï¿½vateľsk�ho fontu len v pr�pade, že je nastaven� premenn� SYSFONTACM. Tak si ju nastavte, alebo si to nejako opravte!
J�n Ondrej (SAL), <[email protected]>
Jeho lokaliz�cia je jednoduch�, pretože ju priamo podporuje. Kl�vesou F9 vyvol�te menu Options->Display bits... a zapnite voľby:
(*) Full 8 bits output [x] Full 8 bits input |
Po tomto kroku bude MC vypisovať diakritick� znaky spr�vne a bude ich možn� aj zad�vať z kl�vesnice. Ak sa pri vstupe do niektor�ch adres�rov bude zobrazovať hl�ška „Warning: Couldn't change to ...“, tak potrebujete lokalizovať knižnicu readline (iba pre staršie RedHat syst�my).
R�mčeky v MC (judas). Ak použï¿½vate console-tools, pre spr�vnu funkciu r�mčekov v Midnight Commander a podobn�ch textov�ch aplik�ci�ch nastavte font s application charset map. U mňa funguje jedine t�to kombin�cia:
sh$ consolechars --font lat2u-16 --acm iso02 |
J�n 'judas' Tomka, <[email protected]>
Miestnych nastaven� sa t�kaj� v konfiguračnom s�bore ~/.muttrc nasledovn� premenn�:
ascii_chars -- Ak je nastaven�, Mutt použije znaky ASCII pri zobrazovan� vl�ken stromov pripojen�ch s�borov, namiesto znakov ASC. To odpor�čam, ak m�te nastaven� staršï¿½ font bez podpory app-charset-map a namiesto čiar a šï¿½piek sa v�m zobrazuj� znaky s diakritikou, alebo tieto znaky blikaj� ap.
charset -- Znakov� sada, ktor� použï¿½va v�š termin�l na zobrazovanie a vkladanie textov�ch d�t. Nastaviť na k�d znakovej sady fontu, ktor� m�te nastaven� na konzole alebo v XTerme, atď.
send_charset --
J�n 'judas' Tomka, <[email protected]>
V s�bore s glob�lnymi nastaveniami /etc/inputrc alebo vo svojom užï¿½vateľskom s�bore ~/.inputrc je pre spr�vnu interpret�ciu osembitov�ch znakov nastaviť tieto premenn�:
convert-meta --- Ak je nastaven� na `on', Readline konvertuje znaky s nastaven�m �smym bitom na sekvenciu znakov ASCII odstr�nen�m �smeho bitu a pridan�m znaku Esc na začiatok.
input-meta --- Ak je nastaven� na `on', Readline umožn� osembitov� vstup (neodstr�ni �smy bit z preč�tan�ch znakov) bez ohľadu na to, či to termin�l podporuje. Meno meta-flag je synonymom pre t�to premenn�.
output-meta --- Ak je nastaven� na `on', Readline bude zobrazovať znaky s nastaven�m �smym bitom priamo a nie ako escape sekvencie.
Takže, do jedn�ho zo spom�nan�ch s�borov vložte tak�to nastavenia:
set convert-meta off set input-meta on set output-meta on |
J�n 'judas' Tomka, <[email protected]>
Tento mal� skript�k „doinštaluje“ slovensk� preklady všetk�ch aplik�ci�, ktor� m�te nainštalovan�. M�žu v�m ch�bať, ak ste pri inštal�cii operačn�ho syst�mu nezvolili slovensk� jazyk.
export RPM_INSTALL_LANG=sk cd /mnt/cdrom/Mandrake/RPMS/ for i in *.rpm; do j=$(rpm -q --queryformat "%{NAME}" -p $i) if rpm -q $j; then rpm -Uvh --replacepkgs $i fi done |
Už nikdy nezabudnite nastaviť premenn� RPM_INSTALL_LANG!
J�n 'judas' Tomka, <[email protected]>
N�prava toho, že Rxvt vypisuje mŕtvy kl�ves priamo a nečak� na ďalšï¿½ znak, s ktor�m by ho skombinoval, je ot�zka jedn�ho argumentu pri konfigurovan�:
sh$ ./configure --enable-xim sh$ make sh$ su -c'make install' |
T�mto sa Rxvt skompiluje s podporou pre XIM (X Input Method) protokol. Ten umožňuje alternat�vne met�dy vstupu (napr. kinput2) a tiež spr�vne nastavenia pre ľud�, čo použï¿½vaj� mŕtve kl�vesy.
J�n Ondrej (SAL), <[email protected]>
Po nastaven� lokaliz�cie dok�že automaticky prek�dovať znaky s diakritikou z k�dovania 852 na ISO-8859-2. Nastavuje sa to v konfiguračnom s�bore /etc/smb.conf pridan�m nasleduj�cich riadkov do sekcie [global]:
character set = iso8859-2 client code page = 852 |
http://www.kotelna.sk/keso/unix/vim.html
Ak nem�žete, alebo nechcete použï¿½vať rozloženie kl�ves pre slovenčinu, ale potrebujete zadať p�r našich znakov vo Vim, d� sa to urobiť pomocou pr�kazu imap. Jeho form�t je
:imap {lhs} {rhs} |
{lhs} je postupnosť znakov, po ktor�ch zadan� (v kr�tkom časovom intervale) sa vyp�še {rhs}.
Pre slovenčinu by sa dali využiť imap defin�cie znakov typu
:imap =a � :imap +c č |
Ako vidno, je to niečo podobn� ako compose sekvencie z kapitoly o kl�vesnici na konzole. Po zadan� t�chto pr�kazov m�žete aj so štandardn�m rozložen�m kl�ves zad�vať vo vim znaky s diakritikou. Tu je kompletn� zoznam imap defin�ci� pre slovensk� diakritiku. Uložte ho do s�boru napr�klad sk.vim a vo Vim ho nač�tate pr�kazom
:source sk.vim |
imap =a � imap =A � imap +a � imap +A � imap +c č imap +C Č imap +d ď imap +D Ď imap =e � imap +e ě imap =E � imap +E Ě imap =i � imap =I � imap =l ĺ imap =L Ĺ imap +l ľ imap +L Ľ imap +n ň imap +N Ň imap =o � imap =O � imap +o � imap +O � imap "o � imap "O � imap =r ŕ imap =R Ŕ imap +r ř imap +R Ř imap +s š imap +S Š imap +t ť imap +T Ť imap =u � imap =U � imap +u ů imap +U Ů imap "u � imap "U � imap =y � imap =Y � imap +z ž imap +Z Ž |
J�n 'judas' Tomka, <[email protected]>
V pr�pade, že potrebujete z textov�ho s�boru odstr�niť diakritick� znamienka, m�žete použiť program sed, pomocou ktor�ho nahrad�te v�skyt znaku s diakritikou jeho ekvivalentom bez nej.
Ak chcete odstr�niť diakritiku �plne, mus�te nahradiť v�skyt všetk�ch znakov s diakritikou. Ak ale chcete len to, aby sa s�bor zobrazoval spr�vne pri prezeran� bez zaveden�ho fontu latin 2, stač� nahradiť len tie znaky, ktor� sa nezobrazuj� spr�vne pre štandardn� font (spravidla latin 1).
Toto je pr�kaz, ktor� možno použiť pri vytv�ran� verzie s�boru �plne bez diakritiky:
sed -e "s:�:a:g" -e "s:�:A:g" -e "s:�:a:g" -e "s:�:A:g" \ -e "s:č:c:g" -e "s:Č:C:g" -e "s:ď:d:g" -e "s:Ď:D:g" \ -e "s:�:e:g" -e "s:�:E:g" -e "s:ě:e:g" -e "s:Ě:E:g" \ -e "s:�:i:g" -e "s:�:I:g" -e "s:ĺ:l:g" -e "s:Ĺ:L:g" \ -e "s:ľ:l:g" -e "s:Ľ:L:g" -e "s:ň:n:g" -e "s:Ň:N:g" \ -e "s:�:o:g" -e "s:�:O:g" -e "s:�:o:g" -e "s:�:O:g" \ -e "s:�:o:g" -e "s:�:O:g" -e "s:ŕ:r:g" -e "s:Ŕ:R:g" \ -e "s:ř:r:g" -e "s:Ř:R:g" -e "s:š:s:g" -e "s:Š:S:g" \ -e "s:ť:t:g" -e "s:Ť:T:g" -e "s:�:u:g" -e "s:�:U:g" \ -e "s:ů:u:g" -e "s:Ů:U:g" -e "s:�:u:g" -e "s:�:U:g" \ -e "s:�:y:g" -e "s:�:Y:g" -e "s:ž:z:g" -e "s:Ž:Z:g" \ "Slovak-HOWTO.sgml" > "Slovak-HOWTO-nodiac.sgml" |
Braňo Katreniak
Keď sa zmieňujete o tom, ako sa d� odstr�niť slovenčina z dokumentu, zd� sa mi vhodn� spomen�ť aj program cstocs. Je to mil� utilitka štandardne dod�van� s TeXom. Umožňuje konverziu s�borov prakticky všetk�ch možn�ch k�dov�ch str�nok medzi sebou navz�jom, pričom jedna z možnost� je aj odstr�nenie diakritiky. Pričom sa mi to zd� pohodlnejšie ako sed.
J�n 'judas' Tomka, <[email protected]>
Existuje aj program recode, ktor� pravdepodobne tiež sl�ži na zmeny v k�dovan� s�borov. Určite ho použijete na tento cieľ, ak sa predt�m nestane niektor� z nasleduj�cich vec�:
Pr�dete o oči pri č�tan� man str�nky, info manu�lu a všetk�ho čo je o tomto -- inak určite užitočnom programe -- pop�san�.
Pr�dete o nervy pri sk�šan� všetk�ch možn�ch kombin�ci� parametrov, volieb či argumentov pre tento nesmierne užitočn� program.
Pr�dete o poč�tač, keďže ho vyhod�te z okna po dvoch t�ždňoch psychick�ho utrpenia, ktor� zažijete pri pokusoch s t�mto extr�mne užitočn�m programom.
Podľa všetk�ho by mal stačiť nasledovn� pr�kaz:
recode l2 subor.txt |