LDP/LDP/howto/docbook/Slovak-HOWTO/locales.sgml

556 lines
26 KiB
Plaintext
Raw Permalink Normal View History

<!--DOCTYPE section PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
<!-- $Id$ -->
<section id="locales">
<title id="locales.title">Miestne nastavenia</title>
<section>
<title>Princ<6E>py miestnych nastaven<65></title>
<para>Podpora miestnych nastaven<65> je dnes mimoriadne d<>le<6C>it<69>m faktorom, ktor<6F> charakterizuje
jednotliv<69> opera<72>n<EFBFBD> syst<73>my. <20>asy, ke<6B> boli <20>udia <20>tastn<74>, <20>e to nie<69>o p<><70>e, s<> nen<65>vratne
pre<72> a pou<6F><75>vatelia vy<76>aduj<75> podporu svojich miestnych nastaven<65>. V <acronym>GNU</acronym>
syst<73>moch je t<>to podpora implementovan<61> priamo do <20>tandardnej kni<6E>nice jazyka
<acronym>C</acronym> -- <acronym>GNU</acronym> libc. T<>to podpora je navrhnut<75> tak, aby
zoh<6F>ad<61>ovala v<>etky po<70>iadavky kladen<65> na nastavenia pre ak<61>ko<6B>vek krajinu a ak<61>ko<6B>vek
jazyk.</para>
<section>
<title>Ciele a prostriedky</title>
<para>R<>zne krajiny a kult<6C>ry maj<61> odli<6C>n<EFBFBD> pravidl<64> komunik<69>cie. Tieto pravidl<64> m<><6D>u by<62>
mal<61>ho rozsahu, napr. form<72>t d<>tumu a <20>asu, a<> po ve<76>mi koplexn<78> ako je jazyk, ktor<6F>m
hovoria.</para>
<para>Internacionaliz<69>cia softv<74>ru znamen<65> programova<76> ho tak, aby bol schopn<70> pracova<76> s
pou<6F>ivate<74>ov<6F>mi miestnymi nastaveniami. V <acronym>ISO</acronym> <acronym>C</acronym>
pracuje internacionaliz<69>cia v zmysle <firstterm>locales</firstterm>. Ka<4B>d<EFBFBD> locale (miestne
nastavenia) <20>pecifikuje skupinu pravidiel, jedno pravidlo pre ka<6B>d<EFBFBD> u<>el. U<><55>vate<74> si zvol<6F>
skupinu pravidiel <20>pecifikovan<61>m locale (pomocou syst<73>mov<6F>ch premenn<6E>ch).</para>
<para>V<>etky programy dedia nastaven<65> locale v r<>mci ich prostredia. Pod podmienkou, <20>e
programy s<> nap<61>san<61> tak, <20>e akceptuj<75> nastaven<65> locales, m<><6D>u sa riadi<64> pravidlami, ktor<6F>
uprednost<73>uje pou<6F><75>vate<74>.</para>
</section>
<section>
<title>Kateg<65>rie a ich funkcie</title>
<para>T<>to <20>as<61> popisuje jednotliv<69> premenn<6E>, ktor<6F> ovplyv<79>uj<75> miestne nastavenia a ktor<6F>mi
sa riadia aj funkcie kni<6E>nice <acronym>GNU</acronym> libc.</para>
<para>Nastavenie premennej prostredia sa rob<6F> pomocou pr<70>kazu shellu
<screen>
bash$ export LC_PREMENNA=sk
tcsh$ setenv LC_PREMENNA sk
</screen></para>
<para><envar>LC_PREMENNA</envar> je jedna z nasleduj<75>cich:
<itemizedlist>
<listitem>
<para><envar>LC_COLLATE</envar> --- Triedenie re<72>azcov. Nastaven<65>m tejto premennej
mo<6D>no prin<69>ti<74> aplik<69>cie, napr. <command>sort</command>, <command>ls</command> a in<69>,
aby pri porovn<76>van<61> re<72>azcov brali do <20>vahy miestne rozlo<6C>enie jednotliv<69>ch p<>smen v
abecede. Sloven<65>ina m<> napr<70>klad hne<6E> nieko<6B>ko znakov, ktor<6F> by pri trieden<65> pod<6F>a
<20><>selnej hodnoty znaku sp<73>sobovali probl<62>my. Slovensk<73> nastavenia triedenia povedia
funkciam <function>strcoll</function> a <function>strxfrm</function>, <20>e napr<70>klad
<literal>ch</literal> je jedno p<>smeno a nasleduje hne<6E> za <literal>h</literal> a nie
za <literal>c</literal>, <20>e <20>irok<6F> <literal><3E></literal> nasleduje za dlh<6C>m
<literal><3E></literal> a to zase za oby<62>ajn<6A>m <literal>a</literal>. Sk<53>ste si to na
pr<70>kaze <command>sort</command>. Zadajte p<>smen<65> <literal>cc ch hh</literal>, potom
zme<6D>te <envar>LC_COLLATE</envar> pr<70>kazom
<screen>
bash$ export LC_COLLATE=sk
tcsh$ setenv LC_COLLATE sk
</screen></para>
<para>Sk<53>ste to so <command>sort</command> znovu a porovnajte v<>sledok...</para>
</listitem>
<listitem>
<para><envar>LC_CTYPE</envar> --- Klasifik<69>cia a prevod znakov, multibyte. Spr<70>vne
nastavenie tejto premennej je nutn<74> pre korektn<74> rozli<6C>ovanie znakov abecedy
jednotliv<69>ch jazykov, ur<75>enie <20><>slic, tzv. bielych znakov, prevod mal<61>ch p<>smen na
ve<76>k<EFBFBD>, at<61>. Najvhodnej<65>ie je t<>to premenn<6E> nenastavova<76> a t<>m umo<6D>ni<6E>, aby bola jej
hodnota prebrat<61> od premenn<6E>ch <envar>LC_ALL</envar> alebo <envar>LANG</envar>
(vi<76> <20>alej). Ak ale nechcete pou<6F><75>va<76> slovensk<73> nastavenia, len ma<6D> spr<70>vne zobrazen<65>
slovensk<73> fonty a funk<6E>n<EFBFBD> slovensk<73> kl<6B>vesnicu na konzole aj pod iXami, nastavte iba
t<>to premenn<6E>.</para>
<warning>
<simpara>V<>dy si bu<62>te stopercentne ist<73>, <20>e m<>te t<>to premenn<6E> nastaven<65> (bu<62> cez
<envar>LC_ALL</envar>, <envar>LANG</envar> alebo priamo), lebo inak nem<65> zmysel
<09><>ta<74> <20>alej! Ono <quote>klasifik<69>cia a prevod znakov</quote> neznie nejako l<>kavo,
ale vedzte, <20>e je to sakramentsky d<>le<6C>it<69> pre <20>ivot slovensk<73>ch p<>smeniek vo va<76>om
Linuxe!</simpara>
</warning>
</listitem>
<listitem>
<para><simplelist type="inline"><member><envar>LC_MONETARY</envar></member>
<member><envar>LC_NUMERIC</envar></member></simplelist> --- Form<72>t pe<70>a<EFBFBD>n<EFBFBD>ch a
<20><>seln<6C>ch hodn<64>t. Umo<6D><6F>uje meni<6E> skupinu nastaven<65>, ktor<6F> sa pou<6F>ij<69> pri form<72>tovan<61>
pe<70>a<EFBFBD>n<EFBFBD>ch hodn<64>t alebo v<>etk<74>ch ostatn<74>ch <20><>seln<6C>ch hodn<64>t. S<> to desatinn<6E> <20>iarka,
odde<64>ova<76> tis<69>cov, zoskupovanie <20><>slic, znamienka pre kladn<64> a zaporn<72> hodnoty,
at<61>.</para>
</listitem>
<listitem>
<para><envar>LC_TIME</envar> --- Form<72>tovanie d<>tumu a <20>asu. Nastavenia odde<64>ova<76>ov
medzi hodinami, min<69>tami a sekundami, n<>zvy dn<64>, poradie rok, mesiac a de<64> v d<>tume,
...</para>
</listitem>
<listitem>
<para><envar>LC_MESSAGES</envar> --- V<>ber jazyka, pou<6F>it<69>ho u<><75>vate<74>sk<73>m rozhran<61>m na
preklad hl<68><6C>ok programov. Toto je presne t<> premenn<6E>, ktor<6F> prin<69>ti aplik<69>cie hovori<72>
po slovensky. Vi<56> <20>al<61>ie kapitoly.</para>
</listitem>
</itemizedlist>
</para>
<para>S prekladom hl<68>sen<65> programov, hlavne s umiestnen<65>m s<>borov s prelo<6C>en<65>mi re<72>azcami,
s<>vis<69> premenn<6E> <envar>NLSPATH</envar>. Mala by obsahova<76> dvojbodkami oddelen<65> zoznam
adres<65>rov, v ktor<6F>ch sa bud<75> h<>ada<64> <filename>.mo</filename> s<>bory pre miestne nastavenia
dan<61> premennou <envar>LC_MESSAGES</envar>. Premenn<6E> <envar>NLSPATH</envar> je v<>ak
potrebn<62> nastavova<76> len vo v<>nimo<6D>n<EFBFBD>ch pr<70>padoch, preto<74>e aplik<69>cie h<>adaj<61> preklady svojich
hl<68>sen<65> v <20>tandardn<64>ch adres<65>roch pre tieto s<>bory.</para>
<para>Okrem t<>chto premenn<6E>ch bolo implementovan<61>ch nieko<6B>ko <20>al<61><6C>ch, ktor<6F> zatia<69> nie s<>
zdokumentovan<61> (<citetitle>The GNU C Library Reference Manual</citetitle>). Ich v<>znam je
zrejm<6A> z n<>zvu, tak<61>e uvediem aj svoju dedukciu.</para>
<itemizedlist>
<listitem>
<simpara><envar>LC_PAPER</envar> --- Form<72>t papiera. V na<6E>ich zemepisn<73>ch <20><>rkach sa
napr<70>klad pou<6F><75>va form<72>t <acronym>A4</acronym>, v Amerike je to
Letter, at<61>. Pozor, t<>to premenn<6E> neobsahuje priamo n<>zov form<72>tu, ale (tak, ako v<>etky
<envar>LC_</envar> premenn<6E>), skratku miestneho nastavenia, teda u n<>s to bude
<constant>sk</constant>. Ak by sme chceli pou<6F><75>va<76> form<72>t Letter, museli by sme t<>to
premenn<6E> nastavi<76> na k<>d miestneho nastavenia niektorej z kraj<61>n, ktor<6F> pou<6F><75>va tak<61>to
form<72>t, napr<70>klad <constant>us</constant>. V tomto pr<70>pade je nutn<74> nain<69>talova<76> bal<61>k s
miestnymi nastaveniami pre t<>to krajinu (<application>locales-us</application>).
</simpara>
</listitem>
<listitem>
<simpara><envar>LC_NAME</envar> --- Form<72>t mena a priezviska. U n<>s m<> ka<6B>d<EFBFBD> dve men<65>,
p<><70>u sa v porad<61> meno, priezvisko. V Rusku maj<61> zase tri men<65> v porad<61> meno,
otcovo-meno, priezvisko. V Ma<4D>arsku maj<61> dve men<65> tak ako u n<>s, ale p<><70>u sa v opa<70>nom
porad<61>. O tom je t<>to premenn<6E>. Asi...</simpara>
</listitem>
<listitem>
<simpara><envar>LC_ADDRESS</envar> --- Sp<53>sob z<>pisu adresy. Poradie ulice a popisn<73>ho
<20><>sla domu, ZIP k<>d, PS<50> apod.</simpara>
</listitem>
<listitem>
<simpara><envar>LC_TELEPHONE</envar> --- Form<72>t telef<65>nnych a faxov<6F>ch <20><>sel. Ur<55>uje
zoskupovanie <20><>slic, ich oddelovanie, po<70>et <20><>sel predvo<76>by, ...</simpara>
</listitem>
<listitem>
<simpara><envar>LC_MEASUREMENT</envar> --- Miery. Jednotky hmotnosti, objemu, teploty a
d<><64>ky, pou<6F><75>van<61> v tej ktorej krajine. Program nap<61>san<61> v <acronym>USA</acronym> bude
pravdepodobne po<70><6F>ta<74> s gal<61>nmi vody, ale ak je spr<70>vne nap<61>san<61>, s premennou
<envar>LC_MEASUREMENT</envar> nastavenou na <quote>sk</quote> bude zobrazova<76> litre v
spr<70>vnom pomere. To ist<73> plat<61> napr<70>klad pre prevod teploty vo Fahrenheitovej stupnici
na stupne Celsia.</simpara>
</listitem>
<listitem>
<simpara><envar>LC_IDENTIFICATION</envar> --- Az ap<61>d, tak toto neviem. Rodn<64> <20><>slo?
<20><>slo soci<63>lneho poistenia? <20><>slo top<6F>nok?</simpara>
</listitem>
</itemizedlist>
</section>
<section>
<title><3E>al<61>ie premenn<6E></title>
<itemizedlist>
<listitem>
<simpara><envar>LC_ALL</envar> --- Ak je t<>to premenn<6E> nastaven<65>, pou<6F>ije sa jej hodnota
pre v<>etky vy<76><79>ie spomenut<75> skupiny locales, bez oh<6F>adu na hodnotu pr<70>slu<6C>n<EFBFBD>ch
premenn<6E>ch.</simpara>
</listitem>
<listitem>
<simpara><envar>LANG</envar> --- Hodnota tejto premennej sa pou<6F>ije pre tie skupiny
locales, ktor<6F> nemaj<61> pr<70>slu<6C>n<EFBFBD> premenn<6E> nastaven<65>.</simpara>
</listitem>
<listitem>
<simpara><envar>LANGUAGE</envar> --- Alternat<61>vne miestne nastavenia. T<>to premenn<6E> m<><6D>e
obsahova<76> usporiadan<61> zoznam k<>dov miestnych nastaven<65> oddelen<65>ch dvojbodkami. S<>bory s
prekladmi hl<68><6C>ok programov sa bud<75> h<>ada<64> v porad<61>, v akom s<> ur<75>en<65> v tomto zozname. Ak
sa nepodar<61> n<>js<6A> s<>bor s prelo<6C>en<65>mi hl<68><6C>kami programu v jednom jazyku, pou<6F>ije sa
s<>bor pre nasleduj<75>ci jazyk v zozname <envar>LANGUAGE</envar>. Navy<76>e, ak sa s<>bor pre
prv<72> jazyk aj n<>jde, ale niektor<6F> re<72>azec z neho nie je prelo<6C>en<65>, nepou<6F>ije sa p<>vodn<64>
(anglick<63>), ale najsk<73>r sa pok<6F>si n<>js<6A> preklad dan<61>ho re<72>azca v s<>bore pre <20>al<61><6C> jazyk
v zozname <envar>LANGUAGE</envar>. To je v<>hodn<64> pre <20>ud<75>, ktor<6F> okrem svojho jazyka
ovl<76>daj<61> nejak<61> in<69> lep<65>ie ako angli<6C>tinu, v ktorej s<> zvy<76>ajne programy origin<69>lne
nap<61>san<61>. Napr<70>klad Slov<6F>k by mohol ma<6D> nastaven<65>
<computeroutput>LANGUAGE="sk:cz"</computeroutput> a Szolv<6C>k z Kom<6F>rom zase
<computeroutput>LANGUAGE="hu:sk"</computeroutput>.</simpara>
<caution>
<simpara>Premenn<6E> <envar>LANGUAGE</envar> ovplyv<79>uje len premenn<6E>
<envar>LC_MESSAGES</envar>! Pre spr<70>vnu funkciu je nutn<74> nastavi<76> aj ostatn<74> premenn<6E>
(minim<69>lne <envar>LC_CTYPE</envar>).</simpara>
</caution>
</listitem>
<listitem>
<para><envar>LINGUAS</envar> --- T<>to premenn<6E> nem<65> <20>peci<63>lny v<>znam z h<>adiska
<acronym>GNU</acronym> libc, ale zvykne sa pou<6F><75>va<76> pri in<69>tal<61>cii programov (zo
zdroj<6F>kov). Medzerami oddelen<65> zoznam k<>dov miestnych nastaven<65> ur<75>uje jazyky, pre ktor<6F>
si u<><75>vate<74> <20>el<65> in<69>talova<76> preklady re<72>azcov aplik<69>cie. Pr<50>klad:
<screen>
bash$ export LINGUAS="sk cz"
bash$ ./configure
bash$ make install
</screen></para>
<simpara>Tieto pr<70>kazy skompiluj<75> a nain<69>taluj<75> aplik<69>ciu s podporou sloven<65>iny a <20>e<EFBFBD>tiny.
In<49>tala<6C>n<EFBFBD> skripty obvykle tie<69> kontroluj<75> obsah premenn<6E>ch <envar>LANG</envar> a
<envar>LC_ALL</envar>, tieto ale m<><6D>u obsahova<76> len jeden k<>d miestnych
nastaven<65>.</simpara>
</listitem>
<listitem>
<para><envar>RPM_INSTALL_LANG</envar> --- <20>astej<65>ie ako zo zdrojov<6F>ho k<>du sa aplik<69>cie
in<69>taluj<75> z r<>znych bal<61>kov (rpm, deb, ...). Kv<4B>li <20>etreniu miestom na disku (a logike
-- m<>lokto ovl<76>da tridsa<73> re<72><65>) je v <acronym>RPM4</acronym> mo<6D>n<EFBFBD> ur<75>i<EFBFBD> jazyk, ktor<6F>ho
prelo<6C>en<65> hl<68><6C>ky sa bud<75> in<69>talova<76>. Preto odpor<6F><72>am do s<>boru
<filename>.bash_profile</filename> (<filename>.login</filename>) u<><75>vate<74>a, ktor<6F>
in<69>taluje bal<61>ky (root), vlo<6C>i<EFBFBD> nasledovn<76> riadok:
<screen>
bash$ export RPM_INSTALL_LANG=sk
tcsh$ setenv RPM_INSTALL_LANG "sk"
</screen></para>
<simpara>Ak sa v<>m nebodaj stane tak<61> vec, <20>e nain<69>talujete cel<65> opera<72>n<EFBFBD> syst<73>m a a<>
potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), sk<73>ste skript uveden<65>
v <20>asti <xref linkend="apps-rpm4" endterm="apps-rpm4.title">.</simpara>
</listitem>
</itemizedlist>
</section>
<section>
<title>Priorita premenn<6E>ch</title>
<para>Miestne nastavenia sa ur<75>uj<75> zo spomenut<75>ch premenn<6E>ch, pri<72>om tieto sa vyhodnocuj<75> v
tomto porad<61>:
<simplelist>
<member><envar>LANGUAGE</envar> --- ovplyv<79>uje len <envar>LC_MESSAGES</envar>
</member>
<member><envar>LC_ALL</envar></member>
<member><envar>LC_*</envar></member>
<member><envar>LANG</envar></member>
</simplelist></para>
<para>To znamen<65> asi to<74>ko, <20>e ke<6B> raz nastav<61>te <envar>LC_ALL</envar>, jednotliv<69>
premenn<6E> <envar>LC_*</envar> sa u<> neber<65> do <20>vahy. Na druhej strane, ak m<>te
napr<70>klad nastaven<65> len niektor<6F> z <envar>LC_*</envar>, ostatn<74> sa nastavia na hodnotu
premennej <envar>LANG</envar>.</para>
</section>
<section>
<title>K<>dy miestnych nastaven<65></title>
<para>Premenn<6E>, ktor<6F> ovplyv<79>uj<75> miestne nastavenia, sa nap<61><70>aj<61> k<>dmi miestnych nastaven<65>.
K<>dy miestnych nastaven<65> s<> re<72>azce, ktor<6F>ch form<72>t sa riadi nieko<6B>k<EFBFBD>mi pravidlami.
V<>eobecn<63> tvar je:
<synopsis>
jazyk[_<>zemie[.k<>dovanie]][@modifik<69>tor]
</synopsis></para>
<para><envar>jazyk</envar> je napr. <constant>sk</constant> pre sloven<65>inu,
<constant>cs</constant> pre <20>e<EFBFBD>tinu, <constant>hu</constant> pre ma<6D>ar<61>inu, <20>zemie je
<constant>SK</constant> pre Slovensko, <constant>CZ</constant> pre <20>esk<73> republiku,
<constant>HU</constant> pre Ma<4D>arsko, k<>dovanie je <constant>ISO-8859-2</constant> pre
v<>etky stredoeur<75>pske jazyky (je mo<6D>ne pou<6F>i<EFBFBD> nieko<6B>ko form<72>tov na zadanie k<>dovania) a
modifik<69>tor slu<6C>i na povolenie alebo zak<61>zanie niektor<6F>ch funkci<63>. Tie s<> dan<61> v defin<69>ciach
miestnych nastaven<65>. Napr<70>klad, pre Ve<56>k<EFBFBD> Brit<69>niu je modifik<69>torom re<72>azec
<constant>euro</constant> a pri jeho pou<6F>it<69> sa ako pe<70>a<EFBFBD>n<EFBFBD> mena bude pou<6F><75>va<76> euro namiesto
libry. To znamen<65>, <20>e sa mus<75> pou<6F>i<EFBFBD> k<>dovanie <constant>iso-8859-15</constant>, ktor<6F>
definuje znaky euro a cent.</para>
<para>Pr<50>klady k<>dov miestnych nastaven<65> (ka<6B>d<EFBFBD> z t<>chto re<72>azcov je mo<6D>n<EFBFBD> priradi<64> premenn<6E>m
miestnych nastaven<65>, ale naj<61>astej<65>ie sa pou<6F><75>vaj<61> len dvojp<6A>smenkov<6F> skratky v poslednom
st<73>pci):
<table>
<title>Pr<50>klady k<>dov miestnych nastaven<65></title>
<tgroup cols="4" align="left" colsep="1" rowsep="1">
<tbody>
<row>
<entry>sk_SK.ISO-8859-2</entry>
<entry>sk_SK</entry>
<entry></entry>
<entry>sk</entry>
</row>
<row>
<entry>cs_CZ.ISO-8859-2</entry>
<entry>cs_CZ@-ch</entry>
<entry>cs@-ch</entry>
<entry>cs</entry>
</row>
<row>
<entry>en_GB.iso8859</entry>
<entry>en_GB</entry>
<entry>en@euro</entry>
<entry>en</entry>
</row>
<row>
<entry>ja_JP.ujis</entry>
<entry>ja_JP.EUC</entry>
<entry>ja_JP</entry>
<entry>ja</entry>
</row>
</tbody>
</tgroup>
</table></para>
<para>Nemali by sme zabudn<64><6E> na dve <20>tandardn<64> locales, ktor<6F> sa pou<6F>ij<69>, ak nie s<> syst<73>mov<6F>
premenn<6E> nastaven<65> a programy ich pou<6F><75>vaj<61> do doby, k<>m sa inicializuje lokaliz<69>cia.
Tvrd<72>m, <20>e sa pou<6F>ij<69> obe, preto<74>e moment<6E>lne s<> toto<74>n<EFBFBD>, ale v bud<75>cnosti sa m<><6D>u v tejto
oblasti <20>tandardy <acronym>ISO</acronym> <acronym>C</acronym> a <acronym>POSIX</acronym>
odli<6C>ova<76> a potom to bude z<>le<6C>a<EFBFBD> na konfigur<75>cii syst<73>mu.
<simplelist>
<member><constant>C</constant> --- nastavenia pod<6F>a <20>tandardu <acronym>ISO</acronym>
<acronym>C</acronym>.</member>
<member><constant>POSIX</constant> --- nastavenia pod<6F>a <20>tandardu
<acronym>POSIX</acronym>. V s<><73>asnosti je to alias pre nastavenia
<constant>C</constant>.</member>
</simplelist></para>
</section>
</section> <!-- locales-principles -->
<section id="locales-slovakia">
<title>Miestne nastavenia pre Slovensko</title>
<para>V prvom rade treba nain<69>talova<76> bal<61>k s podporou miestnych nastaven<65>, ktor<6F> m<> n<>zov
<application>locales</application> a tie<69> bal<61>k s podporou priamo pre Slovensko ---
<application>locales-sk</application>. Ak m<>te z<>ujem pou<6F><75>va<76> aj podporu pre nejak<61> in<69> jazyk
(na na<6E>om <20>zem<65> je aktu<74>lna najm<6A> <20>e<EFBFBD>tina a ma<6D>ar<61>ina), mus<75>te tie<69> nain<69>talova<76> bal<61>ky pre
tieto jazyky.</para>
<para>V druhom rade si mus<75>te nain<69>talova<76> bal<61>ky s podporou miestnych nastaven<65> a priamo
sloven<65>iny (s<> to <application>locales</application> a <application>locales-sk</application>).
</para>
<para>V <20>al<61>om kroku si nezabudnite nain<69>talova<76> bal<61>ky <application>locales</application> a
<application>locales-sk</application>. Takisto, pre ka<6B>d<EFBFBD> jazyk, ktor<6F> sa chyst<73>te pou<6F><75>va<76>,
si nain<69>talujte bal<61>k s podporou miestnych nastaven<65>.</para>
<para>V pr<70>pade probl<62>mov s miestnymi nastaveniami sa dr<64>te predch<63>dzaj<61>cich troch krokov.
</para>
<section>
<title>S<>bory s miestnymi nastaveniami</title>
<para>Prejdime sa teraz trochu po na<6E>ich adres<65>roch. Prv<72> nav<61>t<EFBFBD>vime <filename
class="directory">/usr/share/locale/sk</filename>. Na prv<72> poh<6F>ad vidno, <20>e adres<65>r a
s<>bory v tomto adres<65>ri maj<61> men<65> toto<74>n<EFBFBD> s premenn<6E>mi, pomocou ktor<6F>ch sa nastavuj<75>
jednotliv<69> kateg<65>rie miestnych nastaven<65>. Je to preto, lebo pr<70>ve z t<>chto s<>borov sa
na<6E><61>taj<61> nastavenia, ke<6B> je dan<61> premenn<6E> nastaven<65> na hodnotu <constant>sk</constant>.
Okrem nich tu m<><6D>e by<62> e<>te s<>bor <filename>charset</filename>, ktor<6F> obsahuje len jeden
riadok s re<72>azcom <computeroutput>iso-8859-2</computeroutput>. Ten hovor<6F>, ak<61> k<>dovanie
znakov sa m<> pou<6F>i<EFBFBD> pre dan<61> miestne nastavenia.</para>
<para>V<>etky s<>bory v tomto adres<65>ri s<> bin<69>rne d<>ta a adres<65>r <envar>LC_MESSAGES</envar>
obsahuje s<>bory, ktor<6F>ch men<65> s<> toto<74>n<EFBFBD> s n<>zvami niektor<6F>ch bal<61>kov nain<69>talovan<61>ch na
va<76>om syst<73>me, s pr<70>ponou mo. S<> to preklady re<72>azcov z jednotliv<69>ch aplik<69>ci<63>. O nich si
povieme nesk<73>r. Teraz by sme mohli zisti<74>, <20>o vlastne obsahuj<75> s<>bory <envar>LC_*</envar>.
</para>
<para>Presu<73>me sa do adres<65>ra <filename class="directory">/usr/share/i18n/</filename>. Tu, v
textovom s<>bore <filename>sk_SK</filename> v podadres<65>ri
<filename class="directory">locales/</filename> sa kone<6E>ne nach<63>dzaj<61> slovensk<73> miestne
nastavenia v <20>itate<74>nej (a editovate<74>nej) forme. S<>bory v tomto adres<65>ri maj<61> presne dan<61>
<09>trukt<6B>ru, ktor<6F> je pop<6F>san<61> v manu<6E>lovej str<74>nke locale(5). Pre be<62>n<EFBFBD>ho pou<6F><75>vate<74>a nem<65>
zmysel meni<6E> nastavenia v tomto s<>bore, ke<6B><65>e ide o <20>tandardn<64> nastavenia, ktor<6F> sa
pou<6F><75>vaj<61> na celom Slovensku. Ale, proti Gustovi <20>iadna putika! Ak sa teda rozhodnete zmeni<6E>
nie<69>o v tomto s<>bore, mus<75>te aktualizova<76> s<>bory v prvom spom<6F>nanom adres<65>ri
<filename class="directory">/usr/share/locales/sk/</filename> pr<70>kazom, ktor<6F> <20>daje v s<>bore
<filename>sk_SK</filename> skompiluje a ulo<6C><6F> do s<>borov
<simplelist type="inline">
<member><envar>LC_COLLATE</envar></member>
<member><envar>LC_CTYPE</envar></member>
<member>...</member>
</simplelist>
<programlisting>
sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK
</programlisting></para>
<para>V podadres<65>ri <filename class="directory">/usr/share/i18n/charmaps/</filename> sa
nach<63>dzaj<61> s<>bory s popismi jednotliv<69>ch k<>dovani znakov. Pre Slovensko je aktu<74>lny
<filename>ISO-8859-2</filename> (<28>o je aj obsah spom<6F>naneho s<>boru
<filename>charset</filename>).</para>
<para>V adres<65>ri <filename class="directory">/usr/share/locale/</filename> sa nach<63>dza s<>bor
<filename>locale.alias</filename>, ktor<6F> definuje tzv. <firstterm>aliasy</firstterm> pre
k<>dy miestnych nastaven<65>. Pre spr<70>vnu funkciu slovensk<73>ch miestnych nastaven<65> by mal
obsahova<76> tieto dva riadky:
<programlisting>
sk sk_SK.ISO-8859-2
slovak sk_SK.ISO-8859-2
</programlisting></para>
<para>To zabezpe<70><65>, <20>e aj ke<6B> nezad<61>te k<>dovanie znakov, bude pou<6F>it<69> iso-8859-2. Druh<75> riadok
m<> na svedom<6F> to, <20>e namiesto sk mo<6D>no zada<64> slovak.</para>
<warning>
<simpara>Ale na aliasy typu <constant>slovak</constant> si d<>vajte bacha! Niektor<6F>
aplik<69>cie, ktor<6F> v s<>vislosti s miestnymi nastaveniami nevyu<79><75>vaj<61> slu<6C>by libc, toti<74> na
aliasy ka<6B><61><EFBFBD> a zauj<75>maj<61> ich len prv<72> dva znaky nastaven<65>ch premenn<6E>ch. A tak sa zo
<constant>slovak</constant> stane <constant>sl</constant>, <20>o je Slovinsko. Pozit<69>vne je,
<20>e pre sloven<65>inu m<><6D>ete nastavi<76> premenn<6E> napr<70>klad na hodnotu
<constant>skaderukaskadenoha</constant>.</simpara>
</warning>
</section>
<section>
<title>Konfigur<75>cia miestnych nastaven<65></title>
<para>Nastavenia internacionaliz<69>cie sa (v <systemitem class="osname">RedHat</systemitem> a
<systemitem class="osname">Mandrake</systemitem>) nach<63>dzaj<61> v s<>bore
<filename>/etc/sysconfig/i18n</filename>. Je to ve<76>mi u<>ito<74>n<EFBFBD> s<>bor, ktor<6F> si r<>chlo
ob<6F><62>bite. Mo<4D>no v <20>om nastavi<76> v<>etko, <20>o sa kedy t<>kalo internacionaliz<69>cie, n<>rodn<64>ch
fontov a rozlo<6C>en<65> kl<6B>ves. Tento s<>bor v<>ak len definuje syst<73>mov<6F> premenn<6E> a zvykne sa
vklada<64> (<computeroutput>source /etc/sysconfig/i18n</computeroutput>) do inicializa<7A>n<EFBFBD>ch
skriptov. Exportovanie premenn<6E>ch (odovzdanie ostatn<74>m aplik<69>ci<63>m) m<> na starosti skript
<filename>/etc/profile.d/lang.sh</filename> (<application>bash</application>) alebo
<filename>/etc/profile.d/lang.csh</filename> (<application>tcsh</application>). Tento sa
vykon<6F> pri ka<6B>dom <20>tarte shellu, typicky je volan<61> z <filename>/etc/profile</filename>
(<application>bash</application>) alebo <filename>/etc/csh.cshrc</filename>
(<application>tcsh</application>).</para>
<para>S<>bor <filename>/etc/sysconfig/i18n</filename> definuje nastavenia pre cel<65> syst<73>m.
Tieto sa pou<6F>ij<69>, ak sa nen<65>jde s<>bor s u<><75>vate<74>ov<6F>mi nastaveniami. Ka<4B>d<EFBFBD> u<><75>vate<74> si m<><6D>e
ur<75>i<EFBFBD> svoje vlastn<74> nastavenia v s<>bore <filename>.i18n</filename> v jeho domovskom
adres<65>ri. Nastavenia sa v<>dy <20><>taj<61> len z jedn<64>ho z t<>chto s<>borov, teda ak m<> u<><75>vate<74>
svoj vlastn<74> s<>bor <filename>&tilde;/.i18n</filename>, nastavenia zo s<>boru
<filename class="directory">/etc/sysconfig/i18n</filename> sa ignoruj<75>.</para>
<para>U<><55>vate<74> si m<><6D>e zmeni<6E> nastavenia aj ru<72>ne, kedyko<6B>vek sa mu zachce, nastaven<65>m
premenn<6E>ch prostredia
<simplelist type="inline">
<member><envar>LC_MESSAGES</envar></member>
<member><envar>LANG</envar></member>
<member>at<61>.</member>
</simplelist></para>
<para>Vypn<70><6E> nejak<61> nastavenie je mo<6D>n<EFBFBD> pr<70>kazom
<screen>
sh$ unset LC_MESSAGES LANG
</screen></para>
<para>T<>m sa zru<72>ia nastavenia dan<61>ch premenn<6E>ch (a pou<6F>ije sa <20>tandardn<64> locale
<constant>C</constant> alebo <constant>POSIX</constant>).</para>
<para>Ak m<>te napr<70>klad nastaven<65> premenn<6E> <computeroutput>LC_ALL=sk</computeroutput> a
<computeroutput>LC_MESSAGES=cz</computeroutput>, tak po pr<70>kaze <computeroutput>unset
LC_ALL</computeroutput> nebudete ma<6D> hl<68>senia programov v angli<6C>tine, ale <20>e<EFBFBD>tine. Preto, ak
chcete vypn<70><6E> nejak<61> nastavenia, v<>dy mus<75>te pr<70>kazom unset zru<72>i<EFBFBD> nastavenia v<>etk<74>ch
premenn<6E>ch, ktor<6F> m<><6D>u ovplyv<79>ova<76> dan<61> miestne nastavenia.</para>
<note>
<title>export/setenv</title>
<para>Neodpust<73>m si mal<61> pozn<7A>mku k pr<70>kazu <command>export</command>. Je to vstavan<61>
funkcia v<>etk<74>ch shellov kompatibiln<6C>ch s klasick<63>m <application>sh</application> (teda aj
<application>bash</application>). Pre shelly typu <application>tcsh</application> je
ekvivalentom pr<70>kaz <command>setenv</command>.</para>
<para>Je d<>le<6C>it<69> uvedomi<6D> si, <20>o presne tento pr<70>kaz rob<6F> s premenn<6E>mi. V dokument<6E>cii k
bashu sa hovor<6F>, <20>e <command>export</command> ozna<6E><61> premenn<6E>, aby bola odovzdan<61> detsk<73>m
(<foreignphrase>child</foreignphrase>) procesom v r<>mci prostredia
(<foreignphrase>environment</foreignphrase>). To znamen<65> asi to<74>ko, <20>e ke<6B> spust<73>te napr.
iXy z matersk<73>ho procesu <systemitem class="resource">bash</systemitem>, ktor<6F> pri <20>tarte
exportoval premenn<6E> <computeroutput>LANG=sk</computeroutput>, v<>etky aplik<69>cie v prostred<65>
<application>X Window System</application> bud<75> dedi<64> toto nastavenie a teda (ak to sami
podporuj<75>) bud<75> fungova<76> po slovensky. Ak budete chcie<69> spusti<74> aplik<69>ciu bez slovensk<73>ch
nastaven<65>, mus<75>te v <application>xterme</application> zada<64> pr<70>kaz <computeroutput>unset
LANG</computeroutput> (<computeroutput>unsetenv LANG</computeroutput> pre
<application>tcsh</application>), <20><>m pre v<>etky detsk<73> procesy
<application>xtermu</application> (presnej<65>ie shellu, ktor<6F> je v <20>om spusten<65>), zru<72><75>te
nastavenie premennej <envar>LANG</envar>. Potom aplik<69>cie spusten<65> priamo z tohto xtermu
bud<75> fungova<76> bez podpory sloven<65>iny. Trochu sa s t<>m pohrajte.</para>
</note>
</section>
<section>
<title>Nastavenie <20>asovej z<>ny</title>
<para>S miestnymi nastaveniami <20>zko s<>vis<69> aj nastavenie <20>asovej z<>ny. Vedel by som o tom
rozpr<70>va<76> cel<65> hodiny, ale ono by to muselo by<62> zlo<6C>itej<65>ie ako len nastavenie jednej
premennej... A to takto:
<screen>
bash$ export TZ="Europe/Bratislava"
tcsh$ setenv TZ "Europe/Bratislava"
</screen></para>
<para>Toto nastavenie ovplyv<79>uje len <20>asov<6F> posun oproti hardverov<6F>m hodin<69>m. (Mimochodom,
odpor<6F><72>am hardverov<6F> hodiny nastaven<65> na greenwichsk<73> svetov<6F> <20>as, <20><>m tie<69> odpadaj<61>
probl<62>my s prechodom medzi letn<74>m a zimn<6D>m <20>asom at<61>. ale o tom s<> pop<6F>san<61> in<69> s<>bory.)
Toto cel<65> je dos<6F> dobr<62> vec, hlavne ak mate pr<70>stup k po<70><6F>ta<74>u v inej <20>asovej z<>ne, ale
chcete pracova<76> s <20>asom v stredoeur<75>pskej z<>ne. Do svojho s<>boru
<filename>.bash_profile</filename> (<filename>.login</filename> pre
<application>tcsh</application>) vlo<6C>te vy<76><79>ie uveden<65> riadok.</para>
</section>
</section> <!-- locales-slovakia -->
<section id="locales-examples">
<title>Pr<50>klady miestnych nastaven<65></title>
<itemizedlist>
<listitem>
<para>U<><55>vate<74> je s<>ce zo stredn<64>ho Slovenska, ale u<> ke<6B> s n<>m bola jeho mama tehotn<74>,
p<><70><EFBFBD>ala mu do brucha kurzy angli<6C>tiny. Nem<65> teda zmysel pou<6F><75>va<76> slovensk<73> nastavenia, a<>
na krajn<6A> pr<70>pady, napr. slovensk<73> fonty v <application>Gimpe</application>. Darujte mu
s<>bor <filename>.i18n</filename> s nasledovn<76>m obsahom (aj na tak<61>to mal<61> on<6F> potrebuje
<application>locales-sk</application>):
<screen>
LC_CTYPE=sk
</screen></para>
</listitem>
<listitem>
<para>U<><55>vate<74> je norm<72>lny, m<> r<>d svoj materinsk<73> jazyk, ale netr<74>pi ho, ke<6B> m<> polovicu
aplik<69>ci<63> po slovensky a polovicu po anglicky. Po <20>esky vie. Toto ho pote<74><65> (nezabudnite
mu potajomky nain<69>talova<76> aj <application>locales-cs</application>):
<screen>
LANGUAGE=sk:cs
LANG=sk
</screen></para>
</listitem>
<listitem>
<para>U<><55>vate<74> je z bl<62>zkeho juhu, jeho ob<6F><62>ben<65> pleso je Balaton, v<>etky hl<68><6C>ky chce po
ma<6D>arsky, ak sa inak ned<65>, pochop<6F> aj sloven<65>inu. Nesmieme zabudn<64><6E> na jeho miernu
schizofreniu, pri<72>om jedno jeho ja potrebuje slovensk<73> triedenie re<72>azcov a druh<75> nevie
<20>i<EFBFBD> bez form<72>tovania d<>tumu a <20>asu v <20>e<EFBFBD>tine. Nikdy sa nesmie zabudn<64><6E> na in<69>tal<61>ciu
prekladov hl<68><6C>ok pre ma<6D>ar<61>inu, <20>e<EFBFBD>tinu a sloven<65>inu z bal<61>kov, ktor<6F> podporuj<75> premenn<6E>
LINGUAS. Treba ho tie<69> presved<65>i<EFBFBD>, <20>e in<69>tal<61>cia
<application>locales-{sk,hu,cs}</application> nepredstavuje bezpe<70>nostn<74> riziko:
<screen>
LANGUAGE=hu:sk:cs
LC_COLLATE=sk
LC_TIME=cs
LANG=hu
LINGUAS="hu cs sk"
</screen></para>
</listitem>
</itemizedlist>
</section> <!-- locales-examples -->
</section> <!-- locales -->