Dedinčan odporúča...

logoScribus je otvorený program, ktorý prináša výhody profesionálneho vzhľadu strán do pracovných staníc Linux/Unix, MacOS X, OS/2 a Windows spolu s kombináciou pre tlač pripraveného výstupu a nového prístupu k vzhľadu stránky.

Nastavenie lokalizácie

Kategória: Debian GNU/Linux
Upravené: sobota, 28. august 2010

Väčšina veľkých (rozšírených) distribúcií súčasnosti poskytuje lokalizované (národné) prostredie, ktoré je možné jednoducho zvoliť pri inštalácii a všetko funguje ako má. Čo však treba urobiť ak sa rozhodnete použiť menej rozšírenú distribúciu, či nepoužiť grafické prostredie?

Národné prostredie v konzole

Pre správne fungovania lokalizácie je potrebný balík locales, ktorý je štandardne inštalovaný a jeho nastavenie robíte pri inštalácii systému. Pri nastavovaní tohoto balíka vyberáte aké locales majú byť naištalované. Pre slovnčinu je vhodný výber sk_SK.UTF-8 UTF-8 alebo staršie sk_SK ISO-8859-2. Keďže je možné zvoliť viac ako jednu lokalizáciu a vzhľadom k neúplnosti slovenskej lokalizácie považujem za vhodné nainštalovať i české, a to cs_CZ.UTF-8 UTF-8, respektíve cs_CZ ISO-8859-2. V súčasnej dobe je lepšie vyberať variant jazyka s UTF-8, protože to zjednoduší prepínanie jazykov. Po výbere jazyka nasleduje výber predvoleného jazyka systému, kde pre slovenčinu je treba vybrať možnosť sk_SK.UTF-8.

V prípade potreby je možné toto nastavenie kedykoľvek zmeniť zadaním v príkazovom riadku:

dpkg-reconfigure locales

Zmena nastavenia sa prejaví až po opätovnom prihlásení alebo po ručnom nastavení príslušných premenných. Aktuálne nastavenie lokalizácie si možno vypísať príkazom locale, ktorý vypíše aktuálne nastavenia.

LANG=sk_SK.UTF-8
LANGUAGE=sk_SK.UTF-8:cs_CZ.UTF-8
LC_CTYPE="sk_SK.UTF-8"
LC_NUMERIC="sk_SK.UTF-8"
LC_TIME="sk_SK.UTF-8"
LC_COLLATE="sk_SK.UTF-8"
LC_MONETARY="sk_SK.UTF-8"
LC_MESSAGES="sk_SK.UTF-8"
LC_PAPER="sk_SK.UTF-8"
LC_NAME="sk_SK.UTF-8"
LC_ADDRESS="sk_SK.UTF-8"
LC_TELEPHONE="sk_SK.UTF-8"
LC_MEASUREMENT="sk_SK.UTF-8"
LC_IDENTIFICATION="sk_SK.UTF-8"
LC_ALL=

Význam jednotlivých premenných je v man locale, tu je význam len niektorých:

  • LC_CTYPE – určuje klasifikáciu znakov (čo je a čo nie je znak) a konverziu veľkosti (š -> Š)
  • LC_COLLATE – určuje poradie radenia (abecedne)
  • LC_TIME – určuje formát dátumu a času
  • LC_NUMERIC – určuje formát čísel (oddeľovače tisícov a desatinných miest)
  • LC_MESSAGES – určuje formát správ programov (aj interaktívnych)
  • LC_ALL – má prednosť pred všetkými premennými LC_* (prepisuje ich hodnotu)
  • LANG – je použitá pre premenné LC_*, ktoré nemajú vlastnú hodnotu

Lokalizované prostredie systému sa nastavuje v /etc/environment prípadne v /etc/defaul/locale, avšak každý si môže toto nastavenie zmeniť vo svojej konfigurácii. Pre konzolu v konfiguračnom súbore shellu (~/.bash_login), pre X Window System najlepšie v ~/.xsession. Príklad pre nastavenie, v ktorom budú programy v slovenčine, ale ich správy budú vypisované v pôvodnom jazyku (zväčša angličtina):

export LC_MESSAGES=C
export LANG=sk_SK.UTF-8

V manuálovej stránke locale budete márne hľadať význam premennej LANGUAGE. Je to GNU rozšírenie, ktoré umožňuje nastaviť viacjazyčný systém, moje nastavenie vyššie nastavuje systém tak, že najprv hľadá slovenské lokálky a ak ich nenájde potom skúsi české a ak nenájde ani tie, použije pôvodné texty programu. Nič Vám nebráni pridať si do tejto premennej i ďalšie jazyky.

Priorita premenných

  • LANGUAGE – ovplyvňuje len LC_MESSAGES;
  • LC_ALL – ovplyvňuje všetky premenné;
  • LC_* – ovplyvňujú len samé seba;
  • LANG – použité len na nenastavené.

Fonty a klávesnica v konzole

Pre nastavenie fontov a v klávesnice je pripravený balík console-setup. Pomocou tohoto balíka je možná konfigurácia klávesnice obdobným spôsobom ako v X Window, vrátane tzv. mŕtvy kláves, funkcie AltGr či Compose. Balík zároveň obsahuje konzolové fonty s podporou mnohých jazykov s unifikovaným vzhľadom – klasické VGA, zjednodušené Fixed, či čistejšie Terminus. Balík stačí nainštalovať, vo východzom nastavení pracoval vcelku správne. Ak však predsa len treby niečo zmeniť (napríklad Y/Z), stačí spustiť opätovnú konfiguráciu balíka pomocou:

dpkg-reconfigure console-setup

Ak používate Splashy, použitie tohoto balíka pokazí bootovaciu animáciu. Inou možnosťou sú balíky console-tools a console-data. Jeho nastavenie je v /etc/console-tools/config. Do tohoto súboru treba pridať:

SCREEN_FONT=lat2u-16
SCREEN_FONT_vc2=lat2u-16
SCREEN_FONT_vc3=lat2u-16
SCREEN_FONT_vc4=lat2u-16
SCREEN_FONT_vc5=lat2u-16
SCREEN_FONT_vc6=lat2u-16

Je to nastavenie fontu pre každú virtuálnu konzolu, kto používa konzol menej alebo viac si tieto riadky môže prispôsobiť. Ďalšie konzolové fonty sú v adresári /usr/share/consolefonts/, takže si stačí vybrať.

O nastavenie klávesnice sa stará balík console-data a aj jeho nastavenie ste zvolili pri inštalácii. Ak je potrebné toto nastavenie zmeniť stačí v konzole spustiť:

dpkg-reconfigure console-data

a zvoliť si príslušné rozloženie klávenice (qwertz -> Slovak -> Standard). Zaujímavou voľbou je programátorská klávesnica (Programmer), ktorá kombinuje niektoré slovenské i anglické znaky. Ak je zvolená slovenská klávesnica, možno sa na anglickú klávesnicu prepnúť pomocou klávesy Pause (Break).

Oba tieto balíky obsahujú možnosť, ktorá nastavenie konzolových fontov nespustí, ak je použitý Splashy (to nie je chyba, ale vlastnosť), a teda nepokazí štartovaciu animáciu. V prípade potreby je potom možné spustiť v konzole štartovací skript pomocou:

/etc/init.d/console-screen.sh

ale ak Splashy nepoužívate, poslúži skoro rovnako dobre ako balík console-setup

Národné prostredie v X Window

Pre správne zobrazovaie národných znakov v grafickom prostredí stačí mať nainštalované (prípadne v programe nastavené) správne písma, nižšie spomínané by mali postačovať (xfonts-* sú bitmapové písma, ttf-* sú truetypové).

  • xfonts-base
  • xfonts-75dpi
  • xfonts-100dpi
  • xfonts-intl-european
  • xfonts-terminus
  • ttf-dejavu
  • ttf-freefont

Voľba klávesnice v grafickom prostredí sa nastavuje jednak rôznymi nástrojmi nastavenia (napr. v Gnome, či KDE) ale východzie nastavenie je v konfiguračnom súbore X servera /etc/X11/xorg.conf, kde sekcia pre klávesnicu môže vyzerať takto:

Section "InputDevice"
    Identifier "Keyboard1"
    Driver     "kbd"
    Option     "CoreKeyboard"
    Option     "XkbRules"     "xorg"
    Option     "XkbModel"     "pc105"
    Option     "XkbLayout"    "sk,us"
#    Option     "XkbVariant"  "qwerty"
    Option     "XkbOptions"   "grp:shifts_toggle,grp_led:scroll,grp:switch,compose:menu"
EndSection

Takto nastavená klávesnica používa slovenské rozloženie, ktoré dokáže pomocou pravého Alt (AltGr) písať anglické znaky. trvalé prepnutie na druhú (ďalšiu) klávesnicu umožňuje súčasné stlačenie oboch Shift a toto prepnutie je indikované LEDkou ScrollLock. Pre voľbu inej kombinácie prepínania klávesníc možno použiť aj iné skratky (lem niektoré):

  • grp:ctrls_toggle (obe klávesy Ctrl),
  • grp:alts_toggle (obe klávesy Alt),
  • grp:ctrl_shift_toggle (Ctrl + Shift),
  • grp:ctrl_alt_toggle (Ctrl + Alt),
  • grp:alt_shift_toggle (Alt + Shift),
  • grp:lwin_toggle (ľavý Win),
  • grp:rwin_toggle (pravý Win),
  • grp:sclk_toggle (Scroll Lock),
  • grp:lshift_toggle (ľavý Shift),
  • grp:rshift_toggle (pravý Shift),
  • grp:lctrl_toggle (ľavý Ctrl),
  • grp:rctrl_toggle (pravý Ctrl),
  • grp:lalt_toggle (ľavý Alt).

Voľba compose:menu zase slúži pre namapovanie tzv. Compose klávesy, ktorá pomocou viacnásobných kominácií kláves umožňuja zadávať ďalšie znaky, ktoré na bežnej klávesnici nie sú dostupné, viac http://en.wikipedia.org/wiki/Compose_key. Za zmienku ešte stojí zakomentovaná voľba qwerty, ktorá prepína umiestnenie Z a Y, východzie (teda bez tejto voľby) je QWERTZ.

Prepínanie na iné rozloženia klávesnice (tzv. klávesové mapy) zaistí program setxkbmap:

setxkbmap sk
setxkbmap sk qwerty
setxkbmap ru
setxkbmap ru fonetic

Gnome a KDE

Pre aplikácie Gnome a vlastne všetky GTK aplikácie postačujú predchádzajúce nastavenia. Pre aplikácie KDE (Qt) treba nainštalovať príslušné balíky kde-l10n-sk, prípadne aj kde-l10n-cs. (v KDE 3.x to boli súbory kde-i18n-*). Prípadne je potrebné vybrať písmo so slovenskými znakmi, čo v súčasnosti zaistí písmo ttf-dejavu. Lokalizácia jednotlivých programov býva v samostatných balíkoch, preto treba pri inštalácii pozrieť, či neexistuje aj balík s lokalizáciou (označené rôzne – *-locale, *-l10n, *-i18n, *-sk a podobne).

Nedávno som si všimol, že moje nastavenie z /etc/default/locale nie je exportované do prostredia KDE (a ani Gnome), čo má vplyv na programy, ktoré nie sú aplikáciami KDE. Pôvodne som to riešil pridaním vlastného skriptu medzi skripty spúšťané pri štarte relácie X (/etc/X11/Xsession.d). Ale podrobnejším skúmaním problému som zistil, v čom je problém. Ide o to, že GDM (áno, nepoužívam KDM) vymazáva obsah premennej LANGUEAGE, ak prvý nastavený jazyk tejto premennej nie je zhodný s jazykom GDM. To pre mňa nebola až taká novinka, čo som však nedomyslel bolo, že ten názov jazyka musí byť celý. Po úprave premennej LANGUAGE do tvaru (ako to ukazujem vo výpise vyššie):

LANGUAGE="sk_SK.UTF-8:cs_CZ.UTF-8"

Po tomto nastavení už nasledujúci skript nie je potrebný, ale nechávam ho tu, pre všetky prípady...

Vytvoril som si súbor /etc/X11/Xsession.d/56language, ktorý načíta nastavenie premennej LANGUAGE, ak ešte nie je nastavená, zo spomínaného súboru a ak je tam definovaná, tak ju vyexportuje do prostredia:

# If variable LANGUAGE is not set, then source the /etc/default/locale file
# and then export LANGUAGE variable, if it was set

if [ -z "$LANGUAGE" ]; then
    . /etc/default/locale
    if [ "$LANGUAGE" ]; then
        export LANGUAGE
    fi
fi

Takto mám uchované nastavenie premennej LANGUAGE na jednom mieste, avšak používatelia stále môžu zmeniť jej hodnotu prostredníctvom svojho nastavenia, napr. v .bashrc.

Zdroje

Pridajte svoj komentár...

  • tricqster

    Odoslané o 2009-06-26 11:38:14

    Parada, dakujem. Kedysi som nieco podobne hladal.
    Este jeden detail - mozno by sa zislo este pridat nastavenie klavesnice pre hotplugging. Mnohe distribucie dnes uz nepouzivaju horeuvedeny sposob nastavenia cez xorg.conf a uzivatel, ktory by sa to podla toho teraz snazil nastavit, by mohol byt zmäteny.

    Odpovedať

    • Slavko

      Odoslané o 2009-06-26 15:41:18

      teší ma, že je článok užitočný :-)

      ad hotplug: v žiadom prípade sa nepasujem za odborníka na všetky distribúcie, v KDE či Gnome xorg.conf iste nastavovať netreba. A do popisovania nastavovania HAL by som sa púšťal nerád, nie som v tom veľmi doma.

      Odpovedať

      • Slavko

        Odoslané o 2009-08-14 11:21:17

        keď som hľadal niečo iné, narazil som na Debianiu príručku pre hotplug a xorg: http://wiki.debian.org/XStrikeForce/InputHotplugGuide

        Odpovedať

Copyright © 2008 - 2012 Sprievodca dedinčana... Niektoré práva vyhradené.
Ak nie je uvedené inak, obsah podlieha licencii „Creative Commons Uveďte autora – Zachovajte licenciu 3.0 Unported

Nenasledovať tento odkaz, inak budete maž zakázaný prístup na stránku!