Ahhoz, hogy a számítógéped helyesen jelenítse meg az időt, meg kell adnod azt a helynek a zónáját, ahonnan használod a gépet. A használható zónák neveit a /usr/share/zoneinfo/ könyvtárban találod. Állítsd be ezután a /etc/conf.d/clock fájlban az időzónádat. Lehetőleg ne használd a /usr/share/zoneinfo/Etc/GMT* állományokat, mivel ezekből elég nehéz kitalálni a megfelelő hely nevét... Például a GMT-8 valójában a GMT+8 zóna lenne.
Kódlista 1.1: Az időzóna-információ beállítása |
# ls /usr/share/zoneinfo (A példában Budapestet használjuk) # nano -w /etc/conf.d/clock TIMEZONE="Europe/Budapest" # date Wed Mar 8 00:46:05 CET 2006 |
Megjegyzés: Ellenőrizd, hogy az időzóna jelzése (jelen esetben "CET") a lakhelyednek megfelelően íródik-e ki! |
Megjegyzés: Akár felhasználónként külön-külön időzónát is meg lehet adni a TZ változó segítségével. Ennek értéke a /usr/share/zoneinfo könyvtár alatti bármelyik zóna neve lehet. A változónak a shelled megfelelő rc-állományában (bash shell esetén a .bash_profile) lehet értéket adni. Jelen esetben TZ="Europe/Budapest". |
A legtöbb Gentoo Linux telepítés esetén a géped hardveres órája UTC (vagy GMT, Greenwich Mean Time - greenwich-i középidő) időt használ, s az aktuális helyi időt a megadott időzóna segítségével számolja ki a rendszer. Ha valami miatt arra van szükséged, hogy a hardveres órád ne UTC idő szerint mérjen, a /etc/conf.d/clock állományt kell megnyitnod, és átírni benne a CLOCK értékét az eredeti UTC-ről local-ra.
Kódlista 2.1: helyi vagy GMT idő |
(ajánlott:) CLOCK="UTC" (vagy:) CLOCK="local" |
A lokál nem más, mint olyan adatok gyűjteménye, melyek segítségével a legtöbb program eldönti, milyen nyelven fusson, milyen ország beállításait használja. A lokálok és a hozzá tartozó adatok a rendszerkönyvtár részei, a legtöbb gépen a /usr/share/locale könyvtárban találhatók. A lokálok neve többnyire ab_CD alakú, ahol ab a kétjegyű nyelvi kód (esetenként három, leírásukat az ISO-639 szabványban találhatod), a CD pedig a kétjegyű országkód (ezeket pedig az ISO-3166 szabvány tartalmazza).
A lokálok adatait környezeti változók tartalmazzák. Ezeket a /etc/env.d/02locale (rendszerbeállítások), vagy a ~/.bashrc (felhasználói beállítások) állományban szokás megadni. Azt, hogy az egyes változók melyik lokálbeállítást módosítják, az alábbi táblázatban találod. A tábla elején szereplőknek nagyobb a prioritásuk, vagyis az alattuk lévők működését felülírják. Értékük valamely, az ab_CD alakban lévő lokál neve.
| Változó neve | Leírás |
| LC_ALL | Az összes lokálbeállítást egyben adja meg. Ez az összes többi beállítást felülírja. |
| LC_COLLATE | A szövegek ábécé-sorrendbe rendezési módját adja meg, például a rendezett könyvtárlisták kimenetét módosítja. |
| LC_CTYPE | A rendszer karakterkezelési módját adja meg. Ez határozza meg, hogy mely karakterek tekintendők az ábécé részének, melyek számoknak, stb. Egyes esetekben a használható karakterkészletet is eldönti. |
| LC_MESSAGES | Azon programok esetében, amelyek üzenetalapú honosítást használnak, megadja, hogy milyen lokált használjanak az üzenetek megjelenítésére. (Ilyen a legtöbb Gnu program. A következő fejezetekben bővebben olvashatsz arról, melyek ezek a programok, illetve arról, hogyan lehet a többit a honosított üzenetek használatára bírni.) |
| LC_MONETARY | Megadja, milyen pénznemet kell használni, s milyen formában kell azt kiírni. |
| LC_NUMERIC | A számok formátumát adja meg (kivéve a pénznemét), mint például az ezresek és a decimális értékek elválasztó-karakterét. |
| LC_TIME | A dátum és az idő formátumát adja meg. |
| LC_PAPER | Az alapértelmezett papírméretet adja meg. |
| LANG | Az összes lokálbeállítást egyben adja meg. Ezt azonban az egyes LC_* változók felülírhatják, akár egyszerre az LC_ALL megadásával. |
Megjegyzés: Bár a legtöbb program jól működik, ha csak az LC_ALL-t használod, némelyik fura eredményt ad, ha az LC_ALL-nak értéket adtál, a LANG-nak azonban nem. Ha biztosra akarsz menni, mindkettőt állítsd be! |
A legtöbb felhasználó egyénileg csak a LANG változót állítja be, esetleg az LC_CTYPE-ot. Ehhez a shelljük indítóállományához a következő parancssoros utasítást adják:
Kódlista 3.1: Felhasználói lokál beállítása a ~/.bashrc állományban |
export LANG="hu_HU@euro" |
Megjegyzés: A lokál végéhez fűzött @euro-val használhatod az Euro pénzjelét (€). |
Természetesen a rendszerlokált is meg lehet adni, mely minden felhasználóra és programra érvényes lesz:
Kódlista 3.2: Alapértelmezett rendszerlokál beállítása a /etc/env.d/02locale állományban |
LC_ALL="hu_HU@euro" LANG="hu_HU@euro" |
Bevett szokás csak felhasználói lokálokat megadni, ilyenkor nem adnak meg alapértelmezett rendszerlokált. Ez ilyenkor a speciális "C" értéket veszi fel, amely történelmi okokból az angol lokállal egyezik meg.
Ahhoz, hogy az üzenetalapú honosítást használó programok ki is használják ezt, valószínűleg az nls (Native language support) USE flaggel kell lefordítanod őket. Az nls-t ismerő programok általában a gettext függvénykönyvtárat is igénylik, ezzel olvassák ki és használják a honosított üzeneteket. Természetesen a Portage automatikusan telepíti a gettextet, ha szükséges.
Miután beállítottad a megfelelő lokált, frissíteni kell a környezeti változókat, hogy a rendszer észlelje, változás történt:
Kódlista 3.3: Rendszerkörnyezet frissítése |
(Alapértelmezett rendszerlokálhoz:) # env-update && source /etc/profile (Felhasználói lokálhoz:) $ source ~/.bashrc |
Ezután a Ctrl-Alt-Backspace megnyomásával ki kell lépned az X szerverből, kijelentkezni, majd normál felhasználóként belépni.
Most már ellenőrizheted, hogy sikerült-e a változtatás:
Kódlista 3.4: Környezeti változások ellenőrzése |
$ env | grep -i LC_
|
Létezik még egy lokalizációs változó, a LINGUAS. Ez a gettextet használó programok esetén a telepítendő honosított állományokat határozza meg, illetve némely speciális programcsomag esetén magát a használandó lokált is. Ilyen például a kde-base/kde-i18n és az app-office/openoffice. A változó értéke szóközzel elválasztott nyelvkódok listája, s a /etc/make.conf állományban érdemes megadni:
Kódlista 3.5: A LINGUAS beállítása a make.conf állományban |
# nano -w /etc/make.conf (Add hozzá a LINGUAS változót. Például magyar, angol és német használatához:) LINGUAS="hu en de" |
Ha olyan lokált akarsz használni, amely alapesetben nem elérhető, a localedef parancsot használhatod az előállítására. Például:
Kódlista 3.6: Lokál létrehozása a localedef segítségével |
# localedef -c -i hu_HU -f ISO-8859-15 hu_HU.ISO-8859-15
|
Miután elkészült a lokál, megadhatod a LANG változó új értékének.
Kódlista 3.7: A LANG változó megadása |
# export LANG="hu_HU.ISO-8859-15"
|
A változtatás után ne feledd el frissíteni a rendszerkörnyezetet:
Kódlista 3.8: Rendszerkörnyezet frissítése |
# env-update && source /etc/profile
|
Ezután a Ctrl-Alt-Backspace megnyomásával ki kell lépned az X szerverből, kijelentkezni, majd normál felhasználóként belépni.
Lokalizáció generálása a glibccel
Valószínűleg csak egy-két lokált szeretnél használni a rendszereden. Ezeket a /etc/locale.gen-ben sorolhatod fel.
Kódlista 3.9: Lokálok hozzáadása a /etc/locale.gen állományhoz |
en_GB ISO-8859-1 en_GB.UTF-8 UTF-8 hu_HU ISO-8859-2 hu_HU@euro ISO-8859-15 |
A következő lépés, hogy futtatod a locale-gen parancsot. Az szépen legenerálja az összes szükséges beállítást a /etc/locale.gen fájl alapján.
Megjegyzés: A locale-gen csak a glibc-2.3.6-r4-től érhető el. Ha neked régebbi glibc verziód van, akkor kérlek most frissítsd. |
Ha le akarod ellenőrizni az elérhető lokálok listáját, futtasd a locale -a parancsot.
4. Billentyűzet-kiosztás konzolon
A konzol által használt billentyűzet-kiosztás a /etc/conf.d/keymaps file-ban, a KEYMAP változóval adható meg, értékét a /usr/share/keymaps/{arch}/ könyvtárban nézheted meg. Az i386 alkönyvtár a főbb kiosztások szerint további alkönyvtárakra oszlik (qwerty/, azerty/, stb.). Egyes nyelvekből többfélét is választhatsz, ezért nem árt kikísérletezni, melyik felel meg legjobban az igényeidnek.
Kódlista 4.1: Konzol billentyűzet-kiosztásának beállítása |
KEYMAP="us" KEYMAP="hu" KEYMAP="hu101" |
5. Billentyűzet-kiosztás az X szerver alatt
Az X szerver által használt kiosztást a /etc/X11/xorg.conf állományban kell megadni, az XkbLayout paraméterrel.
Kódlista 5.1: Az X billentyűzet-kiosztásának beállítása |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "hu"
#Option "XkbModel" "pc105" ## Csak nemzetközi billentyűzetekhez kell megadni.
#Option "XkbVariant" "nodeadkeys" ## Ez leginkább az xterm billentyűzet-kezeléséhez kellhet.
...
|
Ha nemzetközi kiosztású billentyűzeted van, érdemes az XkbModel paraméternek a pc102 vagy pc105 értéket megadni, mert így a billentyűzeted speciális gombjait is kezelni tudod.
A deadkeys paraméter hatására egyes billentyűk leütése után nem írja ki azonnal a megfelelő betűket, hanem egy következővel kombinálva más betűt jelenít meg, mint ami a billentyűre van rajzolva, például é,è,á,à, stb. Az XkbVariant paramétert nodeadkeys értékre állítva lehetővé válik az ilyen speciális karakterek bevitele az X terminálokon is.
Ha egynél több billentyűzet-kiosztás (például angol és magyar) között kell váltogatnod, csak pár sort kell még hozzáírnod az xorg.conf állományhoz, mellyel a kívánt kiosztásokat és a hozzájuk rendelt gyorsbillentyűket adhatod meg.
Kódlista 5.2: Két billentyűzet-kiosztás közötti váltogatás |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "us,hu"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
|
Az XkbOptions beállításával a kiosztások között az Alt-Shift lenyomásával váltogathatsz. Ezzel együtt a Scroll Lock lámpa be- és kikapcsol, a grp_led:scroll paraméternek köszönhetően. Ez egy elég hasznos (és látható) visszajelzést ad arról, éppen melyik kiosztást is használod.
A KDE-hez a kde-base/kde-i18n csomagot kell telepítened. Ha korábban megadtad, használja az előzőekben leírt LINGUAS változót.
Ahhoz, hogy a konzolod meg tudja jeleníteni az Euro jelét, a /etc/conf.d/consolefont állományban lévő CONSOLEFONT változónak meg kell adnod a /usr/share/consolefonts/ könyvtárban található valamelyik állomány nevét (a .psfu.gz kiterjesztés nélkül). Például a lat9w-16 készlet tartalmazza az Euro jelet.
Kódlista 7.1: Konzol karakterkészletének beállítása |
CONSOLEFONT="lat9w-16" |
Érdemes ellenőrizned, hogy a CONSOLEFONT benne van-e a boot futtatási szintben:
Kódlista 7.2: Megfelelő futási szint ellenőrzése |
# rc-update -v show | grep -i consolefont
|
Ha semmilyen szintet nem ír ki a CONSOLEFONT-nak, add hozzá:
Kódlista 7.3: A consolefont hozzáadása a boot futási szinthez |
# rc-update add consolefont boot
|
A legtöbb alkalmazás esetén...
Az Euro jel használata X alatt valamivel nehezebb. Először is úgy kell megváltoztatnod a fixed és a variable beállításokat a /usr/share/fonts/misc/fonts.alias állományban, hogy iso8859-1 helyett iso8859-15-re végződjenek.
Kódlista 8.1: Alapértelmezett X karakterkészlet beállítása |
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 |
Egyes alkalmazások saját karakterkészletet használnak, ezért külön-külön kell megadni nekik, hogy Euro jellel rendelkezőre váltsanak át. Ezt felhasználói szinten az .Xdefaults állományban teheted meg. Érdemes ezt az állományt a /etc/skel/ könyvtárba átmásolni, hogy az újonnan létrehozott felhasználóknak ne kelljen megint megadniuk. Általánosságban azokra az alkalmazásokra lehet megadni, melyeknek a /usr/share/X11/app-defaults/ könyvtárban léteznek ún. resource állományai (mint pl. az xterm). Ezekben többnyire egy létező sort kell módosítani, nem újat hozzáírni. Például az xterm karakterkészletének megváltoztatása:
Kódlista 8.2: xterm karakterkészletének beállítása |
(a saját könyvtáradban) $ echo 'XTerm*font: fixed' >> .Xresources $ xrdb -merge .Xresources |
Ahhoz, hogy (X)Emacs-ben is használni tudd az Euro jelét, add a következő sort a .Xdefaults állományhoz:
Kódlista 8.3: Emacs karakterkészletének beállítása |
Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15 |
Az XEmacs (nem a "sima" Emacs) esetén kicsivel többet kell csinálnod. A /home/user/.xemacs/init.el állományhoz add hozzá a következőt:
Kódlista 8.4: XEmacs karakterkészletének beállítása |
(define-key global-map '(EuroSign) '[€]) |
Megjegyzés: A [] között lévő jel az Euro jele. |
A jelenlegi stabil app-office/openoffice és app-office/openoffice-bin ebuildek a LINGUAS változót használják annak eldöntésére, hogy milyen nyelvű kezelőfelületet telepítsenek. Ha érdekel, hogy a felület fordítása, az elválasztás, helyesírás-ellenőrzés és egyéb honosítási folyamatok hogyan haladnak egy adott nyelven, nézd meg az OpenOffice.Org honosítási weboldalt!