Viacjazyková podpora
Pre inštaláciu LTSP servera som nakoniec zvolil distribúciu Ubuntu (posledná verzia 9.04). Chcel som použiť KDE, ale nové KDE 4.2 ma trochu odrádza aj svojou mizernou lokalizáciou, preto som nakoniec zvolil Gnome. Aké však bolo moje prekvapenie, keď som zistil, že aj tu je lokalizácia horšia ako som zvyknutý. Čo s tým?
Obsah článku
Riešenie je v podstate jednoduché, veď to tak robím už dávno, nastaviť mixované jazykové prostredie, v ktorom bude pre programy použitá slovenská lokalizácia, ak nie je, bude použitá česká lokalizácia a až potom sa program uchýli k použitiu angličtiny.
Inštalácia
Samozrejme, aby to fungovalo, je treba nainštalovať jazykovú podporu. Možno to urobiť z grafického rozhrania, pomocou nástroja Výber jazyka z menu
. Príslušné súbory možno doinštalovať aj ručne pomocou apt:aptitude install language-pack-cs language-pack-gnome-cs language-support-cs
a pre istotu ešte opätovne vygenerovať locales:
locale-gen
Lenže, chyba lávky. Ono to nefunguje. Teda funguje, všetko sa nainštalovalo, ale grafické rozhranie ostalo slovensko-anglické.
Pátranie
Ako som naučený z Debianu, v textovom editore som otvoril súbor
/etc/environment
a pridal som riadok:
LANGUAGE="sk_SK:sk:cs_CZ:cs:en_GB:en"
Lenže…
V grafickom rozhraní žiadna zmena, len v konzole (cez ssh) sa mi začali objavovať hlášky typu:
X11 connection rejected because of wrong authentication.
Tak som nazrel do súborov v adresári :/etc/pam.d
, kde som našiel
odkazy na súbor /etc/default/locale
. Preto som riadok s LANGUAGE z
/etc/environment
zmazal a dal ho do spomínaného /etc/default/locale
.
Dosiahol som polovičný úspech. Cez ssh bola premenná LANGUAGE
nastavená, ale v grafickom rozhraní GNOME žiadna zmena.
Priznám sa, bol som zlý, nahnevaný. Ale posledné náznaky zdravého rozumu ma zaviedli k ujovi Googlovi. Chvíľu som tápal vo výsledkoch hľadania v slovenčine a češtine, ale bez viditeľného úspechu a moje znechutenie rástlo. Ako však píšem, záblesky rozumu sa ešte sem tam zjavili a napadlo ma, že predsa Slováci a Češi nie sú jediní, ktorí si prispôsobujú jazykové nastavenia. Tak som po chvíľke (naozaj chvíľke) pátrania narazil na Rusa, ktorý sa snažil o niečo podobné.
A tam som sa dozvedel, že GDM nuluje nastavenie premennej LANGUAGE, ak
táto neobsahuje rovnaký jazyk ako je nastavený v premennej GDM_LANG
(ktorá berie hodnotu z LANG alebo z menu GDM alebo z ~/.dmrc
). V
skutočnosti mám premennú GDM_LANG prázdnu, ale to znamená, že obsahuje
inú hodnotu ako LANGUAGE, takže to je jedno. A jedno je to aj preto,
že .dmrc
ani menu GDM neumožňuje nastaviť viac jazykov.
Riešenie
Riešenie je však veľmi jednoduché. Prosto stačípridať do súboru
~/.gnomerc
(ak neexistuje treba ho vytvoriť) riadok:
export LANGUAGE="sk_SK:sk:cs_CZ:cs"
Odhlásiť sa znova sa prihlásiť a tie reťazce v grafickom rozhraní, ktoré boli kvôli neúplnej lokalizácii anglické, sú teraz české. Samozrejme, tie lokalizované ostali po slovensky.
Samozrejme, aby to fungovalo, treba túto úpravu urobiť v domovských adresárov všetkých používateľov. Ak je tých používateľov už veľa, pomôže jednoduchý skript:
Kopírovanie do domovských adresárov
#!/bin/bash
GRC="/home/slavko/.gnomerc"
for USRS in `ls /home/`; do cp -f $GRC /home/$USRS/; done
Aby sa táto zmena prejavila aj vo všetkých novovytvorených účtoch,
prekopírujte súbor .gnomerc
aj do adresára /etc/skel
.
Záver
Zoznam locales, ktoré budú generované je v jednotlivých súboroch v
adresári /var/lib/locales/supported.d/
. Ak nejaký riadok z nich
odoberiete, asi budete chcieť, aby tieto locales boli aj odstránené,
preto generovanie spustite s parametrom –purge:
locale-gen --purge