2. Miestne nastavenia

2.1. Princ�py miestnych nastaven�

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.

2.1.2. Kateg�rie a ich funkcie

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:

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?

2.1.3. Ďalšie premenn�

2.1.5. K�dy miestnych nastaven�

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):

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.

2.2. Miestne nastavenia pre Slovensko

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.

2.2.1. S�bory s miestnymi nastaveniami

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.

Varovanie

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.

2.2.2. Konfigur�cia miestnych nastaven�

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.

Pozn�mkaexport/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.

2.3. Pr�klady miestnych nastaven�

Hosting by: Hurra Communications Ltd.
Generated: 2007-01-26 17:58:07